SSL_2325【最小转弯问题】
最小转弯问题
题目
给出一张地图,这张地图被分为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【最小转弯问题】相关推荐
- SSL_2325 最小转弯问题
题目: 给出一张地图,这张地图被分为 n×m(n,m<=100)个方块,任何一个方块不是平地就是高山.平地可以通过,高山则不能.现在你处在地图的(x1,y1)这块平地,问:你至少 ...
- 【SSL】2325最小转弯问题
[SSL]2325最小转弯问题 Time Limit:1000MS Memory Limit:65536K Description 给出一张地图,这张地图被分为 n×m(n,m<=100)个方块 ...
- SSL P2325 最小转弯
题目:http://blog.csdn.net/qq_35786326/article/details/78836913 题意: 求在一个矩阵中的最短路径方案中的转弯次数. 分析: 原身:Oli ...
- 2020-11-17最小转弯半径计算
一.最小转弯半的概念 虚线是最小转弯半径,最外圆是最小通过圆.不要搞混乱了这两个概念. 二.汽车知识 ...
- 杭电1728bfs逃离迷宫java实现
Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有 ...
- hdu1728--------坑爹啊
尼玛,就因为没发现'yes'写成'yrs'.整整让哥找了一个小时的bug.有没有..........此刻,内流满面! 分析: 开始以为是单纯的BFS,结果WA无数次!! 后来分析后发现是要找到不超过转 ...
- 【bfs】WJ的逃离
WJ(J)的逃离 题目大意: 有一个n×m的矩阵,*是不可走的,0是可走的,求1,1到n,m的最小转弯次数 原题: 题目描述 当WJ醒来时,发现自己被困在一个地图的左上角,幸好WJ有张图,并了解到出口 ...
- ROS——Teb算法的优化
一.简介 "TEB"全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification), ...
- 单车模型下方向盘转角与转弯半径关系
1. 单车模型: 上图中:L是轴距Wheel_Base,Theta是车轮转向角度Wheel_Angle,R是转向半径Turn_Radius 2. 变量定义: 方向盘角度:Steer_Angle 方向盘 ...
最新文章
- 程序提示确认关闭后退出
- 同步电路设计的一些问题(时序分析基础,同步电路设计规则)
- openssl java使用手册_openssl使用手册
- 编译时多态和运行时多态
- 项目经理的个人体会、经验总结
- VTK:几何对象之Quad
- Python学习记录——持续更新
- python安装-Python安装
- QT Creator 环境使用 remote debug 调试 arm 程序
- 51-nod(1443)(最短路)
- 自动化测试===unittest和requests接口测试案例,测试快递查询api(二)
- Android根据经纬度计算距离
- 北航软件工程考研经验总结
- 第1章第26节:如何通过幻灯片母版统一管理相同类型的幻灯片2 [PowerPoint精美幻灯片实战教程]
- nginx实现多个域名在同一服务器指向不同端口
- 智能急救站入驻公共场所,搭起生命安全新防线
- 问题 - GitLab repositories 文件夹权限异常
- 线段树模板(建树+更新)
- pytorch【Conv2d参数介绍】
- JavaCard开发环境搭建
热门文章
- 二段式提交协议和三段式提交协议(2PC和3PC)
- 爬虫正则匹配固定长度的数字
- android 高德地图设置不能旋转_地图导航哪家强?
- crosslight仿真之(三)功能集-1-表象单位
- qt listwidget 关键字颜色_seo关键字优化工具如何收费
- ubuntu(18.04LTS)切换 tty终端模式 和图形桌面
- Masonry--“瀑布流” 布局(图片较多,推荐在WIFI下查看)
- LiveGBS国标流媒体GB28181微信无插件直播如何实现跨域鉴权
- 作为程序员,首先要自清自己是什么人
- Windows7下查看CRUX 3.0虚拟机里面的linux ext2和ext3文件系统教程