HDU-1372-Knight Moves
来源:互联网 发布:网络直播公司招聘 编辑:程序博客网 时间:2024/05/21 10:41
BFS的题,没有用BFS做,而是用的Floyd做的
代码:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int inf=1<<28;int map[9][9][9][9],movex[8]={1,1,-1,-1,2,2,-2,-2},movey[8]={2,-2,2,-2,1,-1,1,-1};void Init(){ for(int i=1;i<=8;i++)for(int j=1;j<=8;j++) for(int k=1;k<=8;k++)for(int l=1;l<=8;l++){ if(i==k&&j==l)map[i][j][k][l]=0; elsemap[i][j][k][l]=inf;} for(int i=1;i<=8;i++)for(int j=1;j<=8;j++) for(int k=0;k<8;k++) {int itx=i+movex[k];int ity=j+movey[k];if(itx<0||itx>8||ity<0||ity>8) continue; map[i][j][itx][ity]=1; } for(int kx=1;kx<=8;kx++)for(int ky=1;ky<=8;ky++) for(int ix=1;ix<=8;ix++)for(int iy=1;iy<=8;iy++) for(int jx=1;jx<=8;jx++)for(int jy=1;jy<=8;jy++) map[ix][iy][jx][jy]=min(map[ix][iy][kx][ky]+map[kx][ky][jx][jy],map[ix][iy][jx][jy]);}int main(){ char stra[3],strb[3]; Init(); while(scanf("%s%s",stra,strb)!=EOF) {printf("To get from %s to %s takes %d knight moves.\n",stra,strb,map[stra[0]-'a'+1][stra[1]-'0'][strb[0]-'a'+1][strb[1]-'0']); } return 0;}
- HDU 1372 knight moves
- HDU 1372 Knight Moves
- HDU-1372-Knight Moves
- hdu 1372 Knight Moves
- HDU 1372 Knight Moves
- hdu 1372 Knight Moves
- Hdu 1372 Knight Moves
- HDU 1372 Knight Moves
- HDU 1372 Knight Moves
- HDU-1372Knight Moves
- HDU-1372-Knight Moves
- hdu 1372 Knight Moves
- hdu-1372-Knight Moves
- HDU 1372 Knight Moves
- HDU-1372-knight moves
- hdu(1372) Knight Moves
- hdu 1372 Knight Moves
- hdu 1372 Knight Moves
- MAC概述
- windows phone上下文菜单ContextMenu的使用示例
- 设计模式 应用场景
- MySql按周,按月,按日分组统计数据
- VC 运行时库 /MD、/MDd 和 /MT、/MTd
- HDU-1372-Knight Moves
- Strcat链接俩字符串
- sql 中创建的用户登录后无权限执行存储过程
- Android学习笔记
- DECODE的使用
- 运行Shell程序的方法
- Linux设备驱动开发基础---新驱动程序添加到内核方法(2)
- android中ListView异步加载图片时的图片错位问题解决方案
- initWithCoder 和 decodeWithCoder