剪枝,顾名思义,就是通过一些判断,砍掉搜索树上不必要的子树。有时候,我们会发现某个结点对应的子树的状态都不是我们要的结果,那么我们其实没必要对这个分支进行搜索,砍掉这个子树,就是剪枝。 可行性剪枝 给定n个整数,要求选出K个数,使得选出来的K个数的和为sum。 在搜索时,如果已经选了k个数,再往后选 ...
分类:
其他好文 时间:
2020-01-10 16:04:59
阅读次数:
168
dfs+剪枝 题意是说一仅仅狗要逃出迷宫,可是必须在某个时间点刚好到出口。 開始裸了一个dfs,TLE。。。剪枝没有啥思路。本来想用bfs先判是否能到达,感觉不靠谱。 然后看Discuss,了解了一个奇偶性剪枝。 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ...
分类:
其他好文 时间:
2017-07-02 14:25:53
阅读次数:
138
http://acm.hdu.edu.cn/showproblem.php?pid=1010 题意:就是给出了一个迷宫,小狗必须经过指定的步数到达出口,并且每个格子只能走一次。 首先先来介绍一下奇偶性剪枝: 在这道题目中,如果使用剪枝的话,可以节省不少的时间。 在这道题目中,每次dfs循环时都可以判 ...
分类:
其他好文 时间:
2016-12-28 15:15:25
阅读次数:
163
Problem Description
The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He rea...
分类:
其他好文 时间:
2016-07-04 15:40:44
阅读次数:
181
剪枝还是挺多的,不过都比较容易想,主要是复习一下奇偶性剪枝。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int N = 7; 8 char maze[N][N]; 9 int d...
分类:
其他好文 时间:
2015-08-14 11:35:10
阅读次数:
98
http://acm.hdu.edu.cn/showproblem.php?pid=1010题目大意从S出发,问能否在时间t的时候到达终点D,X为障碍需要注意的是要恰好在t时刻到达,而不是在t时间之内深搜,注意剪枝 剩下格子大于t时间的时候剪掉这个很好想,但还是会超时,还有一个剪枝是依靠奇偶性剪枝比...
分类:
其他好文 时间:
2015-08-06 00:12:28
阅读次数:
108
需要在确切的时间到达D处此题特殊的地方在于剪枝方法:根据所处点与D处的曼哈顿距离和所剩步数的奇偶性剪枝。如果两者奇偶性不同,直接return#include"cstdio"#include"cmath"#include"cstring"#include"iostream"#include"queue...
分类:
其他好文 时间:
2015-08-05 17:54:55
阅读次数:
153
http://acm.hdu.edu.cn/showproblem.php?pid=1010这题就是问能不能在t时刻走到门口,不能用bfs的原因大概是可能不一定是最短路路径吧。但是这题要过除了细心外,还需要强力的剪枝。奇偶性剪枝:参考http://www.cppblog.com/Geek/archi...
分类:
其他好文 时间:
2015-05-22 21:07:50
阅读次数:
120
题意:输入一个n*m的迷宫,和一个T:可以在迷宫中生存的最大时间。S为起点,D为终点。并且,每个格子只能踩一次,且只能维持一秒,然后该块地板就会塌陷。所以你必须每秒走一步,且到D点时,所用时间为T。用深搜。奇偶性剪枝:如果当前的狗所在的坐标与D的坐标奇偶性不一样,那么狗需要走奇数步。同理,如果狗所在...
分类:
其他好文 时间:
2015-05-15 21:19:35
阅读次数:
193
奇偶剪枝是数据结构的搜索中,剪枝的一种特殊小技巧。
现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点,
s
|
|
|
+
—
—
—
e
...
分类:
其他好文 时间:
2015-04-08 16:29:28
阅读次数:
150