Summer day 4
2016-07-15 19:23
288 查看
今天上午深入理解了下DFS,找了模板题自己写会了。上午就写了DFS,下午在神游+看书。
下午神游的时候偶然发现一道类似的拓展的DFS题,于是照猫画虎写了果断WA,不想调试了,DFS递归绕来绕去真智障,贴个HDU的简洁代码做参考
HDU1010
都写在里面了。下午神游的时候偶然发现一道类似的拓展的DFS题,于是照猫画虎写了果断WA,不想调试了,DFS递归绕来绕去真智障,贴个HDU的简洁代码做参考
HDU 2102
#include <cstdio> char a[2][11][11]; int n, m, t, xx[4]={0,0,1,-1}, yy[4]={1,-1,0,0}; int dfs (int x, int y, int z, int ti) { if (a[z][x][y]=='#')z^=1; char&c=a[z][x][y]; if (c=='P') return 1; if (c=='#'||c=='*'||ti>=t) return 0; c='*'; for (int i=0; i<4; ++i) { int xn=x+xx[i],yn=y+yy[i]; if (xn>n||xn<=0||yn<=0||yn>m) continue; if (dfs(xn,yn,z,ti+1)) return 1; } c='.'; return 0; } int main () { int tt; scanf ("%d", &tt); while (tt--) { scanf ("%d%d%d", &n, &m, &t); int x,y,z; for (int k=0; k<2; ++k) for (int i=1; i<=n; ++i) for (int j=1; j<=m; ++j) { scanf (" %c", &a[k][i][j]); if (a[k][i][j]=='S') a[k][i][j]='.',x=i,y=j,z=k; } if (dfs(x,y,z,0)) puts ("YES"); else puts ("NO"); } return 0; }
相关文章推荐
- Linked List Cycle II
- Android布局自我理解与总结
- ubuntu下deb包的安装方法
- Linux启用和配置Java
- ShareSDK QQ分享失败的坑
- FloatingActionButton控件初步使用
- codeforces 696B B. Puzzles(树形dp+概率)
- HDU1042(N!:设4为基数)
- centos6.5下lnmp环境搭建
- bindPose(绑定姿势) 理解
- Java instanceof关键字详解
- JS简介
- canvas(画布)
- 共享
- XSS漏洞分析
- HDU5645(水)
- 高斯混合模型----分类问题
- 在Android应用中使用自定义证书的HTTPS连接(下)
- 安卓手机屏幕投射到电脑以及一台电脑控制多台手机技术原理浅析
- 用于基于 RPM 的 Linux 平台的 Java