题目:http://blog.csdn.net/qq_35786326/article/details/78836913

题意:

 求在一个矩阵中的最短路径方案中的转弯次数。

分析:

  原身:Oliver的救援(http://blog.csdn.net/qq_35786326/article/details/78796604)。
 在其上面稍作改动即可(装作自己用了10分钟改完了)。

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#define LL long long
using namespace std;
inline LL read(){LL d=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}return d*f;
}
int f=0,t,w,a=0,b,c,d,n,m,x[105][105],state[10001][2],father[10001],dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
void cao(int l)//采用回溯法处理拐弯数
{if(father[l]==0) return;else cao(father[l]);if(state[l][0]-state[father[l]][0]==0) f=2; else f=1;if(father[father[l]]==0) a=f;if(a!=f) t++//t为统计变量,a=f;//f为判断当前的走法(横着or竖着),a为判断上一次的走法,方便看出是否有转弯
}
void bfs()//跟Oliver的救援同理
{int head,tail,x1,y1;head=0;tail=1;state[1][0]=a;state[1][1]=b;father[1]=0;x[a][b]=1;do{head++;for(int i=0;i<4;i++){x1=state[head][0]+dx[i];y1=state[head][1]+dy[i];if(x[x1][y1]==0&&x1>0&&x1<=n&&y1>0&&y1<=m){x[x1][y1]=1;tail++;father[tail]=head;state[tail][0]=x1;state[tail][1]=y1;if(x1==c&&y1==d) {cao(tail);tail=0;return;}}}}while(head<tail);return;
}
int main()
{n=read();m=read();int i,j;char s;for(i=1;i<=n;i++)for(j=1;j<=m;j++)x[i][j]=read();a=read();b=read();c=read();d=read();bfs();printf("%d",t);return 0;
}

SSL P2325 最小转弯相关推荐

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

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

  2. SSL_2325【最小转弯问题】

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

  3. SSL 1460——最小代价问题

    Description 设有一个n×m(小于100)的方格(如图所示),在方格中去掉某些点,方格中的数字代表距离(为小于100的数,如果为0表示去掉的点),试找出一条从A(左上角)到B(右下角)的路径 ...

  4. SSL_2325 最小转弯问题

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

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

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

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

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

  7. hdu1728--------坑爹啊

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

  8. 【bfs】WJ的逃离

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

  9. ROS——Teb算法的优化

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

最新文章

  1. 【Android UI设计与开发】第10期:顶部标题栏(一)ActionBar详细概述和简单示例
  2. 5G NR — 基础知识
  3. CTFshow 命令执行 web34
  4. opencv 获取灰度图像
  5. JSPatch – 动态更新iOS APP
  6. 2017双11技术揭秘—千亿级流量来袭,如何用硬件加速技术为CPU减负?
  7. 官网python安装教程_Python安装教程
  8. STM32之端口复用与重映射
  9. 分子排列不同会导致_武汉理工《Matter》:构筑晶体内跨尺度分子筛单晶反应器...
  10. QT + MinGW 中文显示乱码解决方案
  11. win 10 系统激活
  12. python基于二维数据矩阵随机生成图像文件
  13. mysql 合服_风云私服合区的方法详解(mysql数据库合并)
  14. 淘宝返利公众号开发、淘宝联盟API权限申请及对接详细教程
  15. win7开机突然变得很慢_Win7电脑反应变慢怎么办?
  16. 关于Iphone的手势识别
  17. 2021.3.8-第一次MD作业
  18. 网页播放视频有声音无图像问题的临时解决办法
  19. Linux(二) 常用工具
  20. 可选参数和非可选参数python_python – Argparse:必需的参数列在“可选参数”下?...

热门文章

  1. 分布式NoSQL列存储数据库Hbase(六)
  2. 视频号新手必备:定位、涨粉、私域全攻略
  3. 听书笔记:《勇敢去敲老板的门》
  4. Docker-CE 监控
  5. php上传图片(腾讯云对象存储)
  6. 高通开发系列 - Voice Call之语音通话软件框架介绍(翻译)
  7. 轻巧好听的小耳机,佩戴无感音质也不错,JEET Air2体验
  8. 容器服务Kubernetes或jenkins 414问题
  9. 使用手机可以在线拍照、翻译图片文字吗?
  10. mysql中的left join用法 (及多条件查询