杭电1372
2016-04-21 16:16
190 查看
bfs水题
#include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std; int d[8][2]={-1,-2,-2,-1,1,-2,2,-1,-2,1,-1,2,1,2,2,1}; struct node { char x; int y,t; }a,b; int vis[200][10]; int vj(char x,int y){ if(x>='a'&&x<='h'&&y>0&&y<=8&&!vis[x][y])return 1; return 0; } int main(){ char x,x1; int y,y1; while(~scanf("%c",&x1)){ scanf("%d",&y1); a.x=x1; a.y=y1; a.t=0; getchar(); scanf("%c%d",&x,&y); getchar(); memset(vis,0,sizeof(vis)); queue<node>k; k.push(a); vis[a.x][a.y]=1; while(!k.empty()){ a=k.front(); k.pop(); if(a.x==x&&a.y==y){ printf("To get from %c%d to %c%d takes %d knight moves.\n",x1,y1,x,y,a.t); break; } for(int i=0;i<8;i++){ char xx=a.x+d[i][0]; int yy=a.y+d[i][1]; if(vj(xx,yy)){ b.x=xx; b.y=yy; b.t=a.t+1; vis[b.x][b.y]=1; k.push(b); } } } } return 0; }
相关文章推荐
- php读取本地csv文件
- 信号的频率估计(一) 最小二乘法
- 实现十个数排列
- [改善Java代码]慎用动态编译
- 将列表中的字符以‘*’连接生成一个新的字符串
- 第八周学习进度情况
- 基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍
- 从ScrollView嵌套EditText的滑动事件冲突分析触摸事件的分发机制以及TextView的简要实现和冲突的解决办法
- 递归求斐波那契
- SQL 左外连接,右外连接,全连接,内连接
- IOS打包封装Framework-在工程中直接制作framework(三)
- 分布式数据库系统
- Web系统大规模并发——电商秒杀与抢购
- Yii2.0 ActiveForm 表单应用整理
- Android开发抢手,如何培养成移动开发高手?
- dubbox2.8.4编译发布到私服(nexus)
- 站立会议第三天
- spring java 获取webapp下文件路径
- css 定位标签设置格式
- 缓存(二)