DFS+剪枝
来源:互联网 发布:iface702考勤软件 编辑:程序博客网 时间:2024/05/21 13:59
题目: hdu 1010;
预:
char map[10][10];int flag,Xnum,Sx,Sy,Dx,Dy;int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
DFS(int x,int y,int time):
if(x<=0||x>n||y<=0||y>m) return;if(flag==1) return;if(x==Dx&&y==Dy&&time==t){ flag=1; return;}//奇偶性剪枝:不管怎么绕,最短距离+偶数,来源:百科int temp=(t-time)-abs(x-Dx)-abs(y-Dy);if(temp<0||temp&1) return;for(int i=0;i<4;i++){ int x1=x+dir[i][0]; int y1=y+dir[i][1]; if(map[x1][y1]!='X') { map[x1][y1]='X'; DFS(x1,y1,time+1); map[x1][y1]='.'; }}return;
main:
Xnum=0;for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) { cin>>map[i][j]; if(map[i][j]=='S') { Sx=i; Sy=j; } if(map[i][j]=='D') { Dx=i; Dy=j; } if(map[i][j]=='X') { ++Xnum; } } flag=0; map[Sx][Sy]='X'; if(n*m-Xnum<=t) { cout<<"NO"<<endl; continue; } DFS(Sx,Sy,0); if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl;}
0 0
- dfs+剪枝
- DFS剪枝
- DFS+剪枝
- DFS+剪枝
- DFS中的奇偶剪枝
- POJ_1011 DFS+剪枝
- poj 2192 DFS+剪枝
- DFS 剪枝 hdu 1010
- poj3009 dfs + 剪枝
- poj 2248 DFS+剪枝
- poj 1190(DFS+剪枝)
- DFS中的奇偶剪枝
- POJ 3009 DFS +剪枝
- dfs + 回溯 +剪枝
- POJ 2531 (DFS+剪枝)
- POJ 1011 (DFS+剪枝)
- POJ 2362 DFS+剪枝
- Rescue DFS()+剪枝
- Laydate日期乱码
- ffmpeg截图转换视频(笔记)
- 数据结构课程设计-学生成绩管理系统
- ffmpeg 对视频流的截图、录制、转换操作
- Python教程
- DFS+剪枝
- 【技术】无法远程电脑 解决办法
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
- oracle笔记一(sql语句方面)
- 体育生上海两年的android求学路
- iptables学习笔记之---搭建一套强大的安全防护盾
- 输入淘宝ID关键字显示内容(采用Thread+handle)
- 使用NSStringFromSelector
- poj 1328 贪心