博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2488 A Knight's Journey(经典DFS)
阅读量:5297 次
发布时间:2019-06-14

本文共 2402 字,大约阅读时间需要 8 分钟。

 

   很久很久以前就见过的,当时不会做,最近在搞DFS,做做吧。。。花时间好长,折腾了一下午,由于一个1打成了0,2Y。。。期间可耻的冲进DISCUSS查错,有时候DISCUSS也会误导人啊,里面说啥的也有,很多不靠谱的说法。。。还好,自己又检查了一遍代码,发现这个错误。。。把深搜的过程写复杂了,看discuss的时候看见有简单的表达方式。

  由于把代码打出来后,发现行和列倒过来了,改一下输入就好。我把英文看做行,数字看做列,所以字典序应该是先上 再左。所以深搜的时候按这个顺序。每组数据注意多输出个空行。

1 #include 
2 #include
3 int p[27][27],m,q,z; 4 int judge() 5 { 6 int i,j; 7 for(i = 1;i <= m;i ++) 8 for(j = 1;j <= q;j ++) 9 {10 if(p[i][j] == 0)11 return 0;12 }13 return 1;14 }15 void dfs(int x,int y,int step)16 {17 int i,j,k;18 char o;19 p[x][y] = step;20 if(z) return ;21 if(judge())22 {23 z = 1;24 for(i = 1; i <= m*q;i ++)25 {26 for(j = 1;j <= m;j ++)27 for(k = 1;k <= q;k ++)28 {29 if(p[j][k] == i)30 printf("%c%d",'A'+j-1,k);31 }32 }33 printf("\n");34 }35 if(p[x-2][y-1] == 0 && x-2 >= 1 && y-1 >= 1)36 {37 dfs(x-2,y-1,step+1);38 p[x-2][y-1] = 0;39 }40 if(p[x-2][y+1] == 0 && x-2 >= 1 && y+1 <= q)41 {42 dfs(x-2,y+1,step+1);43 p[x-2][y+1] = 0;44 }45 if(p[x-1][y-2] == 0&& x-1 >= 1 && y-2 >= 1)46 {47 dfs(x-1,y-2,step+1);48 p[x-1][y-2] = 0;49 }50 if(p[x-1][y+2] == 0&& x-1 >= 1 && y+2 <= q)51 {52 dfs(x-1,y+2,step+1);53 p[x-1][y+2] = 0;54 }55 if(p[x+1][y-2] == 0&& x+1 <= m && y-2 >= 1)56 {57 dfs(x+1,y-2,step+1);58 p[x+1][y-2] = 0;59 }60 if(p[x+1][y+2] == 0&& x+1 <= m && y+2 <= q)61 {62 dfs(x+1,y+2,step+1);63 p[x+1][y+2] = 0;64 }65 if(p[x+2][y-1] == 0 && x+2 <= m && y-1 >= 1)66 {67 dfs(x+2,y-1,step+1);68 p[x+2][y-1] = 0;69 }70 if(p[x+2][y+1] == 0 && x+2 <= m && y+1 <= q)71 {72 dfs(x+2,y+1,step+1);73 p[x+2][y+1] = 0;74 }75 return ;76 }77 int main()78 {79 int t,i,j,k,num = 1;80 scanf("%d",&t);81 while(t--)82 {83 z = 0;84 scanf("%d%d",&q,&m);85 printf("Scenario #%d:\n",num);86 dfs(1,1,1);87 if(!z)88 printf("impossible\n");89 printf("\n");90 num ++;91 }92 return 0;93 }

 

 

转载于:https://www.cnblogs.com/naix-x/archive/2012/05/31/2528787.html

你可能感兴趣的文章
python 小兵 三元运算符
查看>>
OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)
查看>>
mongoTemplate更新一个Document里面的数组的一个记录。
查看>>
k8s的port、targetport、nodeport之间的区别
查看>>
简单排序
查看>>
vue中的组件化开发
查看>>
关于百度地图iOS中 paopaoView 警告的处理方法
查看>>
电子产品自动搜索比价系统设计与实现 项目愿景与范围
查看>>
Linux内核模块自动加载机制 .
查看>>
第二次 过程性考核
查看>>
PID optimizer
查看>>
Django 1.6 CBVs
查看>>
Fitnesse用系列三
查看>>
游戏碰撞OBB算法(java代码)
查看>>
Scriptcase演示程序,现在,他们使用SC多么简单的开发系统
查看>>
ZOJ 3623 Battle Ships 简单DP
查看>>
asp.net webconfig下的httphandler模块配置
查看>>
数据库Schema两种含义~~
查看>>
堆排序算法
查看>>
arcgis_server_address_note
查看>>