![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索回溯
文章平均质量分 71
lizy3838
啊啊啊
展开
-
POJ3620
今天开始,每天学一些数据结构和算法,然后把暑假集训的作业题都刷一遍,跳过模拟和贪心,从搜索开始。 poj3620 水题一道,dfs求连通块: #include #include #include #include using namespace std; int a[200][200]; int xr[]={1,0,-1,0}; int yr[]={0,1,0,-1}; int原创 2016-02-01 22:01:17 · 283 阅读 · 0 评论 -
poj2488 DFS基础
DFS基础题,题目大意是给出棋盘大小,问马能否走遍所有的格子。 需要注意的是,题目要求按字典序输出路径,所以遍历时,要按照先从上到下再由左至右的顺序。这里开始把往上和往下的顺序搞反了。。一直WA。。还是太年轻。代码有些细节写得丑,大概就是这样。#include #include #include #include using namespace std; int a[40][40];原创 2016-02-02 14:22:29 · 333 阅读 · 0 评论 -
poj2362 dfs 剪枝 比水题难的题
这道题tel了一晚上。。看了题解后。。终于A掉了,题目大意是:给出若干根各种长度的棍子,问它们能否拼接成正方形(每根都要用上)。 首先求出棍子长度的和sum。 剪枝1:sum%4!=0 则答案一定为no。 若sum%4==0,则棍子要组合出四根长度为 siz=sum/4 的边。 剪枝2:只要判断能组合出3条边,答案即为yes。 所有棍子长度按从大到小顺序排序,因为越长的棍子与其它棍子组合原创 2016-02-02 22:55:46 · 263 阅读 · 0 评论 -
poj1011 dfs 剪枝
这道题与poj2362类似,对剪枝的要求更多了原创 2016-02-03 12:33:44 · 360 阅读 · 0 评论 -
poj1321 简单dfs
一道水题,需要注意的是,放置棋子时,可以跳过此行进入下一行。 以下是代码: #include #include #include #include using namespace std; int n,k,ans=0; char a[10][10]; int b[10]; //记录这一列是否有放置棋子 void dfs(int x,int step) { if(step=原创 2016-02-04 17:58:24 · 237 阅读 · 0 评论 -
hdu1010 dfs+剪枝 (挺机智的题。。)
一道DFS+剪枝题,题目意思是问能否在规定时间到达出口(路径不能重复),一开始我以为在t时间内到达就行了。。果断写了一个BFS然后一直WA,一搜题解才恍然大悟。。。一个简单的DFS,剪枝部分很机智,根据起点终点还有规定时间的奇偶性质可以剪枝,然后最短路线和时间的关系可以剪枝。 以下是代码: #include #include #include #include using names原创 2016-02-04 21:54:05 · 378 阅读 · 0 评论 -
hdu2614 DFS
#include #include #include #include #include #include using namespace std; int f[20][20],flag[20]; int ans; int n; void DFS(int now,int tim,int maxx) { ans=max(ans,maxx); if(ans==n) ret原创 2016-07-29 08:55:04 · 233 阅读 · 0 评论