最小转弯问题

题目

给出一张地图,这张地图被分为n×m(n,m<=100)个方块,任何一个方块不是平地就是高山。平地可以通过,高山则不能。现在你处在地图的(x1,y1)这块平地,问:你至少需要拐几个弯才能到达目的地(x2,y2)?
你只能沿着水平和垂直方向的平地上行进,拐弯次数就等于行进方向的改变(从水平到垂直或从垂直到水平)的次数。例如:如图1,最少的拐弯次数为5。

Input

第1行:n m
第2至n+1行:整个地图地形描述(0:空地;1:高山)
第n+2行:x1 y1 x2 y2(分别为起点、终点坐标)

Output

s(最小拐弯次数)

Sample Input

5 7
1 0 0 0 0 1 0
0 0 1 0 1 0 0
0 0 0 0 1 0 1
0 1 1 0 0 0 0
0 0 0 0 1 1 0
1 3 1 7

Sample Output

5

解析

同样是BFS,只不过是四向while拓展而已
一遍过,时间0ms,空间1380K,与旁边的大佬wc r一样,但我排在前面,为什么?
我code比wc r少0.03K
快乐就是如此简单

code:

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstdlib>
using namespace std;
int n,m,x1,y1,x2,y2,ak[4]={1,0,0,-1},ioi[4]={0,-1,1,0},t[110][110];
queue <int> b,c;
bool check(int x,int y){if(x>=1&&x<=n&&y>=1&&y<=m&&t[x][y]==0)return 1;return 0;}
void bfs()
{int x,y,xx,yy;while(!b.empty()){x=b.front(),y=c.front(),b.pop(),c.pop();if(x==x2&&y==y2){printf("%d",t[x2][y2]-2);//面向输出编程exit(0);}for(int i=0;i<=3;i++){xx=x+ak[i],yy=y+ioi[i];//懒得写do-while,才不是没想到while(check(xx,yy)){t[xx][yy]=t[x][y]+1;b.push(xx);c.push(yy);//打的时候没加进队,就很“舒服”xx+=ak[i],yy+=ioi[i];}}}
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&t[i][j]),t[i][j]=-t[i][j];//日常疑惑改数据,蒟蒻常数大scanf("%d%d%d%d",&x1,&y1,&x2,&y2);t[x1][y1]=1;b.push(x1),c.push(y1);bfs();return 0;
}

SSL_2325【最小转弯问题】相关推荐

  1. SSL_2325 最小转弯问题

    题目:         给出一张地图,这张地图被分为 n×m(n,m<=100)个方块,任何一个方块不是平地就是高山.平地可以通过,高山则不能.现在你处在地图的(x1,y1)这块平地,问:你至少 ...

  2. 【SSL】2325最小转弯问题

    [SSL]2325最小转弯问题 Time Limit:1000MS Memory Limit:65536K Description 给出一张地图,这张地图被分为 n×m(n,m<=100)个方块 ...

  3. SSL P2325 最小转弯

    题目:http://blog.csdn.net/qq_35786326/article/details/78836913 题意:  求在一个矩阵中的最短路径方案中的转弯次数. 分析:   原身:Oli ...

  4. 2020-11-17最小转弯半径计算

    一.最小转弯半的概念 虚线是最小转弯半径,最外圆是最小通过圆.不要搞混乱了这两个概念. 二.汽车知识                                                   ...

  5. 杭电1728bfs逃离迷宫java实现

    Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有 ...

  6. hdu1728--------坑爹啊

    尼玛,就因为没发现'yes'写成'yrs'.整整让哥找了一个小时的bug.有没有..........此刻,内流满面! 分析: 开始以为是单纯的BFS,结果WA无数次!! 后来分析后发现是要找到不超过转 ...

  7. 【bfs】WJ的逃离

    WJ(J)的逃离 题目大意: 有一个n×m的矩阵,*是不可走的,0是可走的,求1,1到n,m的最小转弯次数 原题: 题目描述 当WJ醒来时,发现自己被困在一个地图的左上角,幸好WJ有张图,并了解到出口 ...

  8. ROS——Teb算法的优化

    一.简介 "TEB"全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification), ...

  9. 单车模型下方向盘转角与转弯半径关系

    1. 单车模型: 上图中:L是轴距Wheel_Base,Theta是车轮转向角度Wheel_Angle,R是转向半径Turn_Radius 2. 变量定义: 方向盘角度:Steer_Angle 方向盘 ...

最新文章

  1. 程序提示确认关闭后退出
  2. 同步电路设计的一些问题(时序分析基础,同步电路设计规则)
  3. openssl java使用手册_openssl使用手册
  4. 编译时多态和运行时多态
  5. 项目经理的个人体会、经验总结
  6. VTK:几何对象之Quad
  7. Python学习记录——持续更新
  8. python安装-Python安装
  9. QT Creator 环境使用 remote debug 调试 arm 程序
  10. 51-nod(1443)(最短路)
  11. 自动化测试===unittest和requests接口测试案例,测试快递查询api(二)
  12. Android根据经纬度计算距离
  13. 北航软件工程考研经验总结
  14. 第1章第26节:如何通过幻灯片母版统一管理相同类型的幻灯片2 [PowerPoint精美幻灯片实战教程]
  15. nginx实现多个域名在同一服务器指向不同端口
  16. 智能急救站入驻公共场所,搭起生命安全新防线
  17. 问题 - GitLab repositories 文件夹权限异常
  18. 线段树模板(建树+更新)
  19. pytorch【Conv2d参数介绍】
  20. JavaCard开发环境搭建

热门文章

  1. 二段式提交协议和三段式提交协议(2PC和3PC)
  2. 爬虫正则匹配固定长度的数字
  3. android 高德地图设置不能旋转_地图导航哪家强?
  4. crosslight仿真之(三)功能集-1-表象单位
  5. qt listwidget 关键字颜色_seo关键字优化工具如何收费
  6. ubuntu(18.04LTS)切换 tty终端模式 和图形桌面
  7. Masonry--“瀑布流” 布局(图片较多,推荐在WIFI下查看)
  8. LiveGBS国标流媒体GB28181微信无插件直播如何实现跨域鉴权
  9. 作为程序员,首先要自清自己是什么人
  10. Windows7下查看CRUX 3.0虚拟机里面的linux ext2和ext3文件系统教程