poj 2488 dfs
来源:互联网 发布:ubuntu16.04安装python 编辑:程序博客网 时间:2024/06/06 15:54
题目如下点击打开链接
写了许多时间,犯了很多错误,例如回溯的时候要步数要清零 而且要保证字典序最小(英语单词不认识。。。)
代码如下
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>int tag=0;int sum,p,q,cnt=0;int step=0;int visit[27][27];using namespace std;int xx[8]={-1,1,-2,2,-2,2,-1,1};int yy[8]={-2,-2,-1,-1,1,1,2,2};void dfs(int a,int b,int step) // a代表x,b代表y {visit[a][b]=step;step++;if(step==sum+1){tag=1;printf("Scenario #%d:\n",cnt);for(int i=1;i<=sum;i++)for(int j=1;j<=q;j++)for(int k=1;k<=p;k++){if(visit[k][j]==i) printf("%c%d",'A'+j-1,k);}printf("\n\n");return ;}for(int i=0;i<8;i++){int x=a+xx[i];int y=b+yy[i];if(1<=x&&x<=p&&1<=y&&y<=q&&visit[x][y]==0) dfs(x,y,step);if(tag==1) break; } step--; visit[a][b]=0; return ;}int main(){int t;scanf("%d",&t);while(t--){cnt++;scanf("%d %d",&p,&q);sum=p*q;for(int i=1;i<=q;i++){for(int j=1;j<=p;j++){step=1;tag=0;memset(visit,0,sizeof(visit));dfs(j,i,step);if(tag==1) break;}if(tag==1) break;}if(tag==0) printf("Scenario #%d:\nimpossible\n\n",cnt);} }
阅读全文
0 0
- POJ 2488 _ DFS
- POJ 2488 DFS
- poj-2488-dfs
- DFS poj 2488
- POJ 2488(DFS)
- POJ 2488 DFS回溯
- POJ 2488 简单 DFS
- POJ 2488 DFS+回溯
- poj-2488-water-DFS
- poj 2488(DFS)
- poj 2488(dfs)
- POJ 2488 DFS
- poj 2488 dfs
- poj 2488 dfs
- poj 2488 DFS
- poj 2488 dfs+回溯
- POJ 2488(DFS)
- POJ 2488(DFS)
- Robot Framework: 自定义自己的python库
- linux C调试接口
- [bzoj2243][SDOI2011]染色
- 【轮廓线DP,状压DP】BZOJ1087 [SCOI2005]互不侵犯King
- WebRTC视频JitterBuff
- poj 2488 dfs
- POJ 1986 Distance Queries 笔记
- Android开发中那些让你相见恨晚的方法、类或接口
- jquery中$.cookie()的使用
- Kotlin在Android上令人惊叹的技巧
- 分治算法之二分查找
- WebSocket API总结
- Android的日志工具Log
- 拆点 费用流 BZOJ 1877 晨跑