`
tudusi
  • 浏览: 1085489 次
文章分类
社区版块
存档分类
最新评论

2011ACM大赛题目之贪吃蛇算法

 
阅读更多
一条贪吃的蛇在一个n*m的网格中游走,它只能从一个方格走向另一个相邻的方格,这里相邻的意思是两个方格有公共边。每个方格可以看作是一个房间,其中一些是空的,一些存放有苹果。贪吃的蛇根本不进入空的房间,而进入有苹果的房间后就可以带走所有苹果使房间成为空的。蛇从一个指定的房间出发,最终回到它的家,把一路带来的苹果存储到家中,当然,它希望带来的苹果最多。请编写程序,输入有整数n和m,及n*m的一个矩阵,矩阵元素数值中有一个是 -1,表示蛇的出发位置,有一个是 -2,表示蛇的家的位置,其余数值是非负整数,0表示房间为空,非零整数表示苹果的数目。输出蛇选择的游走路径和获得的最多的苹果数目。

例如输入4*4矩阵:
7 0 4 18
4 0 1 1
15 7 11 -1
0 12 -2 0

则应输出 (2, 3), (1, 3), (0, 3), (0, 2), (1, 2), (2, 2), (2, 1), (3, 1), (3, 2), 带回苹果数为1+18+4+1+11+7+12 = 54。

(本题为2011年ACM大赛题目)。(可查阅:吕国英,任瑞征等编著,算法设计与分析(第2版),清华大学出版社,2009年1月,第200-202页。

提示:这是一个利用回溯算法的迷宫搜索类型问题,可参考类似问题的已有解法。


哈哈,连夜把算法写出来了,跟各位码友分享一下:

睡觉睡觉睡觉睡觉睡觉睡觉睡觉睡觉睡觉睡觉睡觉

分享到:
评论

相关推荐

    ACM-ACM竞赛常用算法之贪婪搜索算法实现.zip

    - 具体的ACM竞赛题目,展示了贪婪算法的应用场景。 - 解题思路和算法流程图,帮助理解算法的工作原理。 - C++, Java 或 Python 等编程语言的代码实现,供学习者参考和调试。 - 可能还包括部分测试数据和运行结果,...

    ACM竞赛题目简介ACM竞赛题目简介

    ACM竞赛,全称是ACM/ICPC(国际大学生程序设计竞赛,也称为国际程序设计竞赛),是一项全球范围内的编程比赛,旨在测试参赛者在算法设计、问题理解和编程技术方面的综合能力。在这个比赛中,选手们需要在限定时间内...

    2016年ACM常用算法总结

    ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM-ICPC)是大学生计算机程序设计竞赛中最为著名的赛事之一,强调的是算法与编程能力。以下是根据文件【部分内容】提炼出的...

    ACM-ACM竞赛常用算法之哈希算法实现.zip

    哈希算法在ACM(国际大学生程序设计竞赛)中扮演着至关重要的角色,因为它能高效地处理各种数据结构和问题。哈希算法的核心思想是通过一个特定的函数(哈希函数),将任意长度的输入(也称为键或关键字)转换为固定...

    本文提供了一些ACM竞赛题目和对应的测试算法,旨在帮助读者提升编程和算法设计能力,应对编程竞赛或面试

    本文提供了一系列ACM竞赛的题目和相应的测试算法。这些题目涵盖了各种编程和算法设计的主题,包括但不限于数据结构、排序、搜索、动态规划等。每个题目都配有详细的解题思路和测试算法,以帮助读者理解和掌握。 ...

    acm递归算法总结竞赛

    在ACM(国际大学生程序设计竞赛)中,递归算法是一种常见的解决问题的方法,它通过函数自身调用自身来实现问题的解决。递归的核心在于找到基本情况(base case),即可以直接求解的问题,以及每次递归调用时问题规模...

    ACM算法题100题-经典算法库

    ACM(Association for Computing Machinery)国际大学生软件大赛是一项旨在检验参赛者算法设计、程序编写能力的国际性赛事。它不仅考验参赛者的计算机科学基础知识,还特别注重对算法的理解与应用能力。 ### ACM...

    ACM程序设计竞赛常用算法集

    在ACM程序设计竞赛中,参赛者们需要运用各种算法来解决复杂的问题。这份名为"ACM程序设计竞赛常用算法集"的资源包含了多种适用于竞赛的简单易实现的算法,对于初学者和进阶者都是宝贵的参考资料。下面,我们将详细...

    ACM竞赛资料(ACM算法)

    ACM竞赛,全称为国际大学生程序设计竞赛(International Collegiate Programming Contest, ICPC),是一项全球性的编程竞赛,旨在提升大学生的计算机科学技能,特别是算法设计和问题解决能力。本压缩包包含的“ACM...

    acm算法题目

    在ACM算法竞赛中,掌握各种算法和编程技巧至关重要。这些题目涵盖了不同的算法类型,可以帮助我们提升解决问题的能力和在比赛中取得好成绩。以下是针对给定题目内容的详细解析: 1. **神秘的三位数** (满分3分) 这...

    ACM竞赛贪心算法

    在ACM(国际大学生程序设计竞赛)中,贪心算法是参赛者们必须掌握的重要技能之一。这类竞赛通常要求参赛队伍在限定时间内解决一系列算法问题,因此高效且直截了当的算法策略如贪心,显得尤为关键。 HDUACM2010版_05...

    acm竞赛常用算法和数据结构

    合理评估和优化算法的时空复杂度,是解决竞赛题目时的关键步骤之一。 #### 三、竞赛中常见的题型 竞赛中常见的题型通常围绕上述算法和数据结构展开,具体包括: 1. **数学问题**:涉及组合数学、概率统计等数学...

    ACM竞赛与算法求解

    在ACM(国际大学生程序设计竞赛)中,算法是解决问题的关键。这些竞赛要求参赛者在有限的时间内解决一系列复杂的计算问题,因此掌握高效且实用的算法至关重要。本节将深入探讨几个在图论和网络优化中常见的算法,...

    acm练习题目之原题

    ACM练习题目之原题 ACM(Algorithmic Contest Management)是一种常见的编程比赛平台,旨在评估程序员的算法设计和编程能力。本题目属于ACM原题,旨在考察程序员对算法的掌握和编程的能力。 知识点: 1. ACM比赛...

    ACM的常用算法模板.pdf

    ACM的常用算法模板.pdf

    ACM博客题目提取器

    《ACM博客题目提取器:高效获取编程竞赛资源的利器》 在计算机科学的世界里,ACM(International Collegiate Programming Contest)编程竞赛是一项备受瞩目的活动,它锻炼参赛者的算法设计、逻辑分析以及团队协作...

    acm一些大赛题目题解

    总之,《ACM大赛题目题解》是一项宝贵的学习资料,它对于渴望提高算法与编程能力的学生们,对于准备投身ACM竞赛的队伍,乃至对于任何一个对计算机科学抱有热情的学习者而言,都是一份不可多得的参考资源。...

    acm竞赛的题目模版

    在ACM竞赛中,题目模板通常涵盖了各类常见的算法问题,如排序、搜索、图论、动态规划、字符串处理等。通过学习和理解这些经典模板,参赛者能够快速掌握解决问题的基本思路,提高解题效率。这些模板是前人智慧的结晶...

    典型算法与ACM题目解析

    《典型算法与ACM题目解析》是一份深入探讨算法理论及实践应用的资源集合,主要针对ACM(国际大学生程序设计竞赛)中的常见问题进行详细解答。这份压缩包可能包含了多篇文档或代码,每一篇都针对一个或多个特定算法...

    acm竞赛分治算法总结

    在ACM(国际大学生程序设计竞赛)中,分治算法是一种常用且强大的策略,它将大问题分解为小的相似子问题,独立解决后合并结果,以求解原问题。本篇文章将深入探讨分治算法的基本概念、核心思想以及在ACM竞赛中的应用...

Global site tag (gtag.js) - Google Analytics