UVa439(DFS实现)
2015-07-26 20:36
316 查看
#include <iostream> using namespace std; string beginstr; string endstr; int endx; int endy; int minstep; int direct[8][2]={{2,1},{2,-1},{1,2},{1,-2},{-1,2},{-1,-2},{-2,1},{-2,-1}}; void dfs(int x,int y,int step){ if(step>=minstep) return; if(x>=8||x<0||y>=8||y<0) return; if(x==endx&&y==endy){ if(step<minstep) minstep=step; return; } for(int i=0;i<8;i++){ int dx=x+direct[i][0]; int dy=y+direct[i][1]; dfs(dx,dy,step+1); } } int main(){ while(cin>>beginstr>>endstr){ minstep=999; int x=8-(beginstr[1]-'0'); int y=beginstr[0]-'a'; endx=8-(endstr[1]-'0'); endy=endstr[0]-'a'; dfs(x,y,0); cout<<minstep<<endl; } return 0; }
一开始想得太复杂
相关文章推荐
- 【数据结构】1、串的模式匹配算法
- 算法学习笔记——贪婪
- SQL基础学习_04_视图
- 命令别名alias设置
- Java 设计模式—装饰者模式
- (_)snprintf跨平台测试
- hdu 5130 && BestCoder 1st Anniversary 1001
- java socket编程
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记39 Alert&ActionSheet
- Linux命令学习手册-tr命令
- Java设计模式偷跑系列(21)建模和实现享受metapatterns
- Linux命令学习手册-tr命令 2015-07-26 20:35 9人阅读 评论(0) 收藏
- [BZOJ 1001] [BeiJing2006]狼抓兔子
- UVA 10878
- NSDate类目-实现 1分钟前 X小时前 昨天的显示
- PAT编程:从A+B>C到int和long的区别
- Junit4单元测试要点
- Java 中使用 Calendar 类得到输入日期所在月的最后一天
- 浅析嵌入式C优化技巧
- 抓取知乎每日吐槽