
第七章 暴力求解法 (习题)
aozil_yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
习题7-2 UVA - 225 Golygons (简单的暴力回溯法+剪枝)
题意不说了,说的很清楚。就是有一个细节!对于自交的理解!书中说可以自交,意思是,可以首连接尾巴,每一个大点看作城市的话,不能重复经过城市,但能重复经过路线!在一个麻烦之处在于坐标可以是负的,直接加上105就可以了!可以理解为移动范围在0到105的正方形内!为啥要加105呢,因为最多走20大步,20大步加起来就是210次,你一旦走出105的范围就在也回不去了!因此最大原创 2016-04-15 00:20:13 · 964 阅读 · 0 评论 -
习题7-10 UVA 11214 Guarding the Chessboard (迭代加深搜索)
大体题意:给你n × m 的棋盘 X代表敌人,问最少放几个皇后吃掉所有敌人。思路:类似八皇后问题,直接枚举放的皇后个数进行迭代加深搜索。dfs(x,y,cur)x代表 行数,y代表列数,cur 代表当前第几个皇后,直到满足所有X都可以被吃即可!注意 :放皇后时要注意皇后可以不放在X上!最多5个皇后,枚举到4即可!#include#include#include原创 2016-04-18 12:59:26 · 176 阅读 · 0 评论 -
习题7-7 Egyptian Fractions (HARD version) 埃及分数 (IDA*)
大体题意:在普通的埃及分数上加了 几个限制, 多给了你K个数,让你求出最后的埃及分数结果中分母不能是K个数的某个数的结果。思路:先记录一下 埃及分数算法:利用了迭代加深的搜索方式最后的分母结果记录在ans数组中,最后只需要输出ans 数组即可!首先将ans数组初始化为-1,表示没赋过值,这样在更新答案时,可以判断ans[i] == 1或者 v[i] 在dfs 函数中原创 2016-05-29 17:51:33 · 523 阅读 · 0 评论 -
UVA 307Sticks(dfs搜索)
大体题意:给你n个木棍,要求分配这个n 个木棍到x组,使得x组的木棍长度和都相同,问最小的长度和是多少?思路:直接搜索:需要加很多剪枝才能过:1.首先你枚举时,应该枚举组数,而不是长度和,否则循环会很长。2.如果第一个木棍选完了,没找到合适的使它权值和为枚举的答案,就不可能有答案了。3.如果第i个木棍能组成ans,但其余的不能了,也不能有答案了。4.当长度小于ans原创 2017-02-20 00:35:30 · 390 阅读 · 0 评论 -
UVA 11882 Biggest Number (dfs搜索+bfs 剪枝)
大体题意:给你一个r*c的数字矩阵,要求从任意一个点开始走,只能上下左右走, 求走的过数连接起来最大是多少?思路:直接dfs每一个数字,在每一层dfs中,加上bfs 判断剩下的数连接起来能否大于当前的ans 不能的话 剪枝了。虽然思路是这样的,但昨天一直TLE, 或许姿势不对,第二天重写了一遍 就好很多了= =#include #include #include #inc原创 2017-02-25 10:36:48 · 603 阅读 · 0 评论