博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hoj1440 Knight Moves
阅读量:7246 次
发布时间:2019-06-29

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

/*This Code is Submitted by billforum for Problem 4000099 at 2012-01-27 15:36:46*/#include 
#include
#include
using namespace std;struct point{ int x,y,f,step; }data[10][10];bool legal(int x,int y){ return (x<8&&x>=0&&y<8&&y>=0&&(data[y][x].f==0)); }int main(int args,char** argv){ int dx[8]={-2,-2,-1,-1,1,1,2,2}; int dy[8]={-1,1,-2,2,-2,2,-1,1}; int total=0; char cs,cf; int xs,xf,ys,yf; int ans; while(cin>>cs>>xs>>cf>>xf) { ans=0; for(int i=0;i<8;i++) for(int j=0;j<8;j++) { data[i][j].x=j; data[i][j].y=i; data[i][j].f=0; data[i][j].step=0; } ys=cs-'a'; yf=cf-'a'; xs=xs-1; xf=xf-1; queue
list; point tmp; data[ys][xs].f=1; list.push(data[ys][xs]); while(!list.empty()) { tmp=list.front(); if(tmp.x==xf&&tmp.y==yf) { ans=tmp.step; break; } for(int i=0;i<8;i++) { if(legal(tmp.x+dx[i],tmp.y+dy[i])) { data[tmp.y+dy[i]][tmp.x+dx[i]].f=1; data[tmp.y+dy[i]][tmp.x+dx[i]].step=tmp.step+1; list.push(data[tmp.y+dy[i]][tmp.x+dx[i]]); } } list.pop(); } cout<<"To get from "<
<
<<" to "<
<
<<" takes "<
<<" knight moves."<

 http://acm.hit.edu.cn/hoj/problem/view?id=1440

简单的广搜

转载于:https://www.cnblogs.com/wuzhibin/archive/2012/02/04/2338147.html

你可能感兴趣的文章
我的2013
查看>>
c++开源代码相关网站
查看>>
UISearchController
查看>>
直接数据访问方法
查看>>
AD数据库备份[为企业部署Windows Server 2008系列十五]
查看>>
[置顶] Hibernate4实战 之 第四部分:关系映射
查看>>
mysql主从常用命令
查看>>
docker中磁盘逻辑卷被占满问题
查看>>
[CoreOS 转载] CoreOS实践指南(三):系统服务管家Systemd
查看>>
C# 实现启动欢迎界面的方法
查看>>
【C语言探索之旅】 第一部分第四课第一章:变量的世界之内存那档事
查看>>
错误日记
查看>>
IOS 状态栏(UIStatusBar)
查看>>
ViewController中的UIView Property要设置为weak还是strong
查看>>
借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
查看>>
[转载] 七龙珠第一部——第123话 如意棒的秘密
查看>>
Go操作MySQL数据库
查看>>
Java连接oracle数据库的两种常用方法
查看>>
Android开发之细说ListView上拉加载,下拉刷新过程
查看>>
火车采集器应用
查看>>