大钉骑马走江湖
来源:互联网 发布:知乎 校园招聘 文案 编辑:程序博客网 时间:2024/04/27 11:18
江湖是什么,对于在象棋界厮杀的大钉来说,江湖就是一个矩阵,他的目标,就是在江湖之中骑着马,从他的位置出发,走到终点。
当然,大钉的马也遵从中国象棋中的“马走日”的规则,而且在矩阵中,也会有一些障碍物,马不能跳到障碍物上;如果大钉的马面前有障碍物,即被“别马腿”,那么他将不能跳向有障碍物的左前和右前这两个方向。
请问最少需要多少步,大钉才能骑着马跳到终点。
输入格式:
有多组测试样例。
每组第一行输入两个数 n 和 m,代表矩阵的行数和列数,2≤n≤m<100。
接下来输入 n 行字符串,其中 's' 代表起点,'e' 代表终点,'.' 代表空地,'#' 代表障碍物。
输出格式:
对应每组输入,输出骑马跳到终点的最小步数,如果跳不到终点,输出 −1。
样例1
输入:
3 3s.......e3 3s#....#.e
输出:
4-1
简单bfs
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<queue>using namespace std;int r[8][2]={1,2,1,-2,2,1,2,-1,-1,2,-1,-2,-2,1,-2,-1};char e[105][105];int vis[105][105];struct node{int x,y,s;};int n,m,sx,sy,ex,ey,flag;void bfs(){queue<node> q;node u;u.x=sx;u.y=sy;u.s=0;vis[u.x][u.y]=1;q.push(u);while(!q.empty()){node u=q.front();q.pop();if(u.x==ex&&u.y==ey){if(u.s==0) break;printf("%d\n",u.s);flag=1;break;}node v;for(int i=0;i<8;i++){v.x=u.x+r[i][0];v.y=u.y+r[i][1];int xx=u.x+r[i][0]/2;int yy=u.y+r[i][1]/2;if(e[xx][yy]=='#') continue;if(v.x>=0&&v.x<n&&v.y>=0&&v.y<m&&e[v.x][v.y]!='#'&&!vis[v.x][v.y]){v.s=u.s+1;q.push(v);vis[v.x][v.y]=1;}}}if(flag==0) {printf("-1\n");}}int main(){while(~scanf("%d%d",&n,&m)){memset(e,0,sizeof(e));memset(vis,0,sizeof(vis));for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin >>e[i][j];if(e[i][j]=='s'){sx=i;sy=j;}if(e[i][j]=='e'){ex=i;ey=j;}}}flag=0;bfs();}return 0;}
0 0
- 大钉骑马走江湖
- 大钉骑马走江湖
- 大钉骑马走江湖
- 大钉骑马走江湖【bfs】
- 计蒜客-大钉骑马走江湖
- 计蒜客 11064 大钉骑马走江湖
- 大钉骑马走江湖 (计蒜客)
- C++ - 计蒜客 - 大钉骑马走江湖(bfs)
- 大钉骑马走江湖 (bfs)
- 大钉骑马走江湖 北京林业大学校赛。
- 计蒜客————大钉骑马走江湖
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 B. 大钉骑马走江湖 (广搜)
- 北京林业大学 “计蒜客”杯程序设计竞赛 网络赛 B. 大钉骑马走江湖 BFS
- BFS — 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 —— 大钉骑马走江湖
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 常见问题——大钉骑马走江湖
- 第二届北京林业大学“计蒜客”杯程序设计竞赛 B题 大钉骑马走江湖
- 第二届北京林业大学“计蒜客”杯程序设计竞赛 Problem B - 大钉骑马走江湖
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛-B大钉骑马走江湖
- 【POJ】[3258]River Hopscotch
- SpringMVC+hibernate整合小例子,用户的增删查改
- 人体行为检测手机传感器说明
- 2. Add Two Numbers
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 乘电梯
- 大钉骑马走江湖
- JAVA之工厂模式(静态工厂模式(简单工厂模式)、工厂方法模式、抽象工厂模式)
- QT加载图片和移动控件
- stm32定时中断
- 最值得关注的10个C开源项目
- Spring MVC初体验之xml配置文件
- 当基类被继承后this指针将代表派生类的this指针
- c++实现4阶矩阵或行列式的计算
- 5. Longest Palindromic Substring