hdu 1010 搜索(dfs+剪枝)
来源:互联网 发布:红辣椒电影数据分析 编辑:程序博客网 时间:2024/04/27 04:20
最近在练习搜索,可能自己的算法太渣了,所以这个题如果不剪枝就超时,剪枝了也要600MS
关于此题的剪枝,看了很多题解,觉得这个题解是讲的最清楚的——》点击打开
至于思路是:
1.奇偶剪枝
2.step超限的话,直接忽略之后的路径。
代码如下:
#include<iostream>#include<cstdio>using namespace std;#define MAXN 7int n, m,t,rec[MAXN][MAXN],vis[MAXN][MAXN],mark,ssmark;void dfs(int si, int sj, int step){if (step>t || si < 0 || si >= n || sj < 0 || sj >= m || vis[si][sj] == 1){mark = 1;return;}vis[si][sj] = 1;if (step == t && rec[si][sj] == -3){ssmark = 1;cout << "YES" << endl;return;}else if (step == t || rec[si][sj] == -1){return;}if (ssmark == 1){return;}dfs(si + 1, sj, step + 1);if (mark != 1){vis[si+1][sj] = 0;}mark = 0;dfs(si, sj+1, step + 1);if (mark != 1){vis[si][sj+1] = 0;}mark = 0;dfs(si - 1, sj, step + 1);if (mark != 1){vis[si-1][sj] = 0;}mark = 0;dfs(si, sj - 1, step + 1);if (mark != 1){vis[si][sj -1] = 0;}mark = 0;}int main(){//freopen("TestDate.txt", "r", stdin);int i, j,si,sj,ei,ej;char node;while (cin >> n >> m >> t&&(n!=0&&m!=0&&t!=0)){for (i = 0; i < n; i++)for (j = 0; j < m; j++){cin >> node;if (node == '.'){rec[i][j] = 1;continue;}else if (node == 'X'){rec[i][j] = -1;continue;}else if (node == 'S'){rec[i][j] = -2;si = i;sj = j;continue;}else if (node == 'D'){ei = i;ej = j;rec[i][j] = -3;continue;}}memset(vis, 0, sizeof(vis));ssmark = 0;mark = 0;if ((abs(ei - si) + abs(ej - sj) - t) & 1){printf("NO\n");continue;}dfs(si, sj, 0);if (ssmark == 0){cout << "NO" << endl;}}return 0;}
0 0
- HDU 1010(搜索题,DFS+剪枝)
- hdu 1010 搜索(dfs+剪枝)
- hdu 1010 (DFS+剪枝)
- DFS 剪枝 hdu 1010
- HDU 1010 DFS+剪枝
- hdu 1010 DFS + 剪枝
- hdu 1010 dfs+剪枝
- hdu 1010(dfs+剪枝)
- hdu 1010(dfs+剪枝)
- HDU 1010 DFS+剪枝
- hdu 1010 DFS+剪枝
- 搜索专题(DFS&&BFS&&剪枝)HDU 1728-逃离迷宫
- 搜索专题(DFS+剪枝)HDU 1010-Tempter of the Bone
- HDU 1010( DFS+奇偶剪枝)
- HDU 1010 Dfs的精华(剪枝)
- HDU-1010(DFS+奇偶剪枝)
- hdu 1010 搜索+剪枝!!!!
- HDU 1010 搜索剪枝
- Mysql复习(1)
- 动态链接库
- XML学习笔记(三) -- Schema
- 分析与设计(A&D)简介(3)
- BZOJ2109: [Noi2010]Plane 航空管制 解题报告
- hdu 1010 搜索(dfs+剪枝)
- ViewDragHelper 自定义ViewGroup实现QQ5.0侧滑效果
- java 堆内存 与栈内存
- 串口通信设置步骤
- Ubuntu--(5)Linux下C++编译生成自定义静态库/动态库
- 视觉slam学习资料
- 关于HTTP的总结
- [luogu3393 逃离僵尸岛]
- Error: demo (wrong name: Dem o)