hdu 1010
来源:互联网 发布:域名服务器dns 编辑:程序博客网 时间:2024/06/05 04:25
dfs+奇偶剪枝,关键在于奇偶剪枝的应用
#include <iostream>#include <stdio.h>using namespace std;char s[10][10];int vis[10][10];int d[4][2]={{0,1},{0,-1},{1,0},{-1,0}};int fx,fy;int n,m,t;int flag;void dfs(int sx,int sy,int step){ int i; if((t-step)%2!=(sx+sy+fx+fy)%2) return;//奇偶性剪枝 if(step==t) { if(sx==fx&&sy==fy) flag=1; return; } for(i=0;i<4&&!flag;i++) { int tx=sx+d[i][0]; int ty=sy+d[i][1]; if(tx>=0&&tx<n&&ty>=0&&ty<m&&!vis[tx][ty]&&s[tx][ty]!='X') { vis[sx][sy]=1; dfs(tx,ty,step+1); vis[sx][sy]=0; } }}int main(){ while(cin>>n>>m>>t) { if(!n&&!m&&!t) break; int i,j; int sx,sy; for(i=0;i<n;i++) { for(j=0;j<m;j++) { cin>>s[i][j]; if(s[i][j]=='S') { sx=i; sy=j; } if(s[i][j]=='D') { fx=i; fy=j; } } } memset(vis,0,sizeof(vis)); flag=0;vis[sx][sy]=1; dfs(sx,sy,0); if(flag) printf("YES\n"); else printf("NO\n"); } return 0;}
- HDU 1010
- HDU 1010
- hdu 1010
- hdu 1010
- HDU 1010
- HDU 1010
- hdu 1010
- hdu-1010
- hdu 1010
- hdu 1010
- HDU 1010
- hdu 1010
- hdu 1010
- hdu-1010
- hdu-1010
- hdu 1010
- HDU 1010
- (1010)HDU
- Java读写操作
- Box2D v2.1.0用户手册翻译 - 目录,第01章 导言(Introduction)
- tslib-1.4的移植和应用
- 使用jsoup分析网页
- “没有错误”本身就是一个错误
- hdu 1010
- 转 Servlet生命周期与工作原理
- Q2_棋盘上的距离做题总结
- Java泛型-类型擦除
- URAL 1076 Trash 【最大权匹配KM快速模板O(N^3)】
- Comparator与Comparable的区别
- jvm GC日志输出
- 商业模式的四个环节
- Firefox OS为何大受运营商青睐?