特殊的棋子(bfs)(北理16校赛)
来源:互联网 发布:ubuntu中文语言包 apt 编辑:程序博客网 时间:2024/04/30 02:43
时间限制1秒 内存限制64M
题目描述:
xc今天买到了一个非常大的棋盘,这个棋盘有n行m列这么大。
棋子的走法如图所示:
如果棋子在图中A的位置,那么他在下一步可以移动到棋盘上所有深色的位置,即所有和他相邻的格子,以及斜向距离位2的格子。
每一次这样的移动视为走1步。
现在棋子在第a行第b列,xc想知道最快可以在多少步移动到第c行d列?
输入格式:
第一行2个正整数,n、m。代表棋盘的大小(n,m<=100)
第二行4个正整数,a、b、c、d,保证数据合法。
输出格式:
输出一个整数独占一行,表示从第a行第b列出发,最快可以在多少步移动到c行d列。
样例输入:
100 100
1 1 10 10
样例输出:
5
题目大意:
给出了下一步能往哪里走,求出从起点走到终点最少走多少步
解题思路:
裸的bfs,有12个方向,记录下来依次加入队列即可。
p.s.需要注意的是起点可能和终点相同,那么一开始从队列中pop出起点的时候就需要判断一下是不是终点,输出0,否则得到的是走出去又走回来的步数2,这容易wa一发
#include <iostream>#include <algorithm>#include <vector>#include <cstring>#include <cmath>#include <map>#include <queue>#include <string>#include <set>using namespace std;typedef long long ll;typedef unsigned long long ull;const int INF=0x3f3f3f3f;#define CLR0(a) (memset(a,0,sizeof(a)))#define CLR1(a) (memset(a,-1,sizeof(a)))#define CLRf(a) (memset(a,0x3f,sizeof(a)))const int maxn=0;const int maxm=0;int dx[]={1,-1,0,0,1,-1,-1,1,2,2,-2,-2};int dy[]={0,0,1,-1,1,-1,1,-1,2,-2,2,-2};int vis[128][128];struct node{int x,y,s;node(int xx,int yy,int ss){x=xx;y=yy;s=ss;}};int main(){int n,m;int a,b,c,d;while(cin>>n>>m){CLR0(vis);cin>>a>>b>>c>>d;queue<node> Q;while(!Q.empty())Q.pop();Q.push(node(a,b,0));vis[a][b]=1;int ans=0,f=0;while(!Q.empty()){int X=Q.front().x;int Y=Q.front().y;int S=Q.front().s;if(X==c&&Y==d){ans=S;f=1;break;}Q.pop();for(int k=0;k<12;k++){int tx=X+dx[k];int ty=Y+dy[k];if(tx==c&&ty==d){ans=S+1;f=1;break;}if(tx>=1 && tx<=n && ty>=1 && ty<=m && vis[tx][ty]==0){Q.push(node(tx,ty,S+1));vis[tx][ty]=1;}}if(f)break;} cout<<ans<<endl;}return 0;}
0 0
- 特殊的棋子(bfs)(北理16校赛)
- 【zzuliOJ】1922 - 棋子问题(bfs & 位运算)
- POJ-2157:Maze(特殊的bfs方式)
- 非常可乐-特殊的BFS题
- hdu 1372 bfs最少棋子步数
- POJ-3985:Knight's Problem(特殊的bfs剪枝以及hash)
- 上帝的棋子
- 上帝的棋子
- 黑白棋子的移动
- 黑白棋子的移动
- 黑白棋子的移动
- 黑白棋子的移动
- 黑白棋子的移动
- 不开心的棋子
- bfs特殊方向
- 棋子
- 棋子
- 新的挪棋子程序
- tomcat超时设置
- 查看linux服务器硬盘IO读写负载
- UVA - 10474 Where is the Marble?
- Linux搭建python环境
- NYOJ 42 一笔画问题(欧拉定理&&并查集)
- 特殊的棋子(bfs)(北理16校赛)
- Android开发者上手宝典(三)
- Android笔记-活动
- Java 实现 SSH 协议的客户端登录认证方式
- Camera实现动画Papaer效果
- 点击Viewflipper图片跳转到对应的页面代码
- “高考减招事件”引发在线教育思考 视频云助力行业攻难
- 开心的mdd-矩阵链乘
- 安卓的屏幕适配问题