程序设计方法与艺术 小组解题报告模板.docVIP

  • 17
  • 0
  • 约2.28千字
  • 约 5页
  • 2017-07-07 发布于浙江
  • 举报

程序设计方法与艺术 小组解题报告模板.doc

程序设计方法与艺术 小组解题报告模板

题目A 旅行路线的数目 一个正方形的小镇被分成N2个小方格,Betsy要从左上角的方格到达左下角的方格,并且经过每个方格恰好一次。编程对于给定的N,计算出Betsy能采用的所有的旅行路线的数目 解题思路: 这道题目很明显是道搜索题,关键在于优化。而搜索题的优化主要就是剪枝。 首先很容易想到,因为Betsy是任意的走,当n取到5或6时,它的方案总数就已经很大了,方案数越是大,搜索时,不要用的枝就会越多,而且这些枝占方案总数的比例相当大。如果能知道什么情况下,会出现必然无解,就能很好的提高效率了。于是由此知道,此题用剪枝的方法做是正确的。 具体解法: 首先从题目的条件入手,题目要求每一个各自都必须走到,而且每一个格子只能走一遍。这两个条件就指出了这道题目的可剪的枝条中的两个。 然后从这两条出发,仔细分析一下,到底在什么情况下会不满足题目的要求。 第二个条件要求每个格子只能走一遍,这很简单,用一个数组记录一下到底有哪些格子是已经经过了的,那些是还没有经过的,在Betsy移动时,就只移动到那些还没有经过的格子中去,这样就避免了一个格子走两遍。 第一个条件要求每个格子都要经过一次,这是个很难满足的条件,有很多无解的情况就是因为不满足它,那到底有哪些情况会导致不满足着一个条件呢。比方说下面的几个图。图中箭头表示Betsy的行走路线。 如图1,其中的黄色区是不能达到的,如果到达了黄色区,就别再

文档评论(0)

1亿VIP精品文档

相关文档