UVA439 - Knight Moves
来源:互联网 发布:淘宝批发网 编辑:程序博客网 时间:2024/05/19 05:31
#include <iostream>#include <cstdio>using namespace std;const int maxn=8;const int most=15;int chess[maxn][maxn];int a1,a2,b1,b2;int best;char s1[5],s2[5];int input(){ if(!(cin>>s1)) return 0; cin>>s2; a1=s1[0]-97; a2=s1[1]-49; b1=s2[0]-97; b2=s2[1]-49; return 1;}bool find_best(int a1, int a2,int sum){ if(a1==b1&&a2==b2&&sum<best) best=sum; if(a1==b1&&a2==b2) return 0; if(sum>=most) return 0; sum++; (a1-2>=0)&&(a2-1>=0)&&(sum<best)&&find_best(a1-2,a2-1,sum); (a1-2>=0)&&(a2+1<maxn)&&(sum<best)&&find_best(a1-2,a2+1,sum); (a1-1>=0)&&(a2-2>=0)&&(sum<best)&&find_best(a1-1,a2-2,sum); (a1-1>=0)&&(a2+2<maxn)&&(sum<best)&&find_best(a1-1,a2+2,sum); (a1+1<maxn)&&(a2-2>=0)&&(sum<best)&&find_best(a1+1,a2-2,sum); (a1+1<maxn)&&(a2+2<maxn)&&(sum<best)&&find_best(a1+1,a2+2,sum); (a1+2<maxn)&&(a2-1>=0)&&(sum<best)&&find_best(a1+2,a2-1,sum); (a1+2<maxn)&&(a2+1<maxn)&&(sum<best)&&find_best(a1+2,a2+1,sum);}int main(){ while(input()){ int sum=0; best=30; find_best(a1 ,a2 ,sum); printf("To get from %s to %s takes %d knight moves.\n",s1,s2,best); } return 0;}
0 0
- UVA439- Knight Moves
- Knight Moves UVA439
- uva439 - Knight Moves
- UVA439 - Knight Moves
- UVa439 Knight Moves
- uva439 Knight Moves
- uva439 Knight Moves
- uva439 -- Knight Moves
- Uva439——Knight Moves
- uva439 - Knight Moves 国际象棋的跳马
- poj_2243/uva439 Knight Moves(bfs經典)
- UVA439 POJ2243 HDU1372 ZOJ1091 Knight Moves
- UVa439---Knight Moves(BFS应用)
- 【UVA439】 Knight Moves BFS (3/1000)
- POJ1915 Knight Moves BFS (UVA439 与之相似)
- uva439 Knight Moves (搜索 BFS, BFS启蒙题)
- uva439 - Knight Moves(BFS求最短路)
- UVa439 习题 6-4 骑士的移动(Knight Moves)
- 阿里内推 微博运营
- 05-0. 求序列前N项和
- git跟踪空目录的变通方法
- Oracle与MySql知识汇总
- Java Parallel Streams Are Bad For Your Health
- UVA439 - Knight Moves
- Maximum Product
- Eclipse快捷键大全
- JAVA设计模式(十三)——桥接模式
- golang 并发设计模式(二)--管道模式1
- gdb常用命令
- zoj 2314 Reactor Cooling(无源汇上下界的可行流)
- 黑马程序员-OC语言核心语法(3)(分类、SEL、类本质)
- Java从入门到精通学习笔记---第八章 接口、继承与多态