题目描述
当WJ醒来时,发现自己被困在一个地图的左上角,幸好WJ有张图,并了解到出口正是迷宫的右下角,至少有一条路径可以到达出口。
整个地图有些地方会有障碍(保证左上角右下角没有),WJ可以快速奔跑,只是需要拐弯时令人很不爽。为了保持心情愉悦,WJ想知道最少需要几次转弯。
输入
第一行两个数r,c表示地图大小
接下来r行,每行c个字符,‘*’代表此处有障碍,‘0’代表空地。
输出
一个数,表示最少需要几次转弯。数据保证有解。
输入样例
2 5
0000
0000
输出样例
4
数据范围
对于20%的数据,r、c≤10;
对于40%的数据,r、c≤100;
对于100%的数据,r、c≤500。
思路
从起点出发,向四边不断拓展
每转弯一次次数就+1
代码
#include<cstdio>
#include<iostream>
using namespace std;
int map[1005][1005],a[100005],b[100005],c[100005],p[1005][1005],r,c2;
char ch;
int dx[4]={
1,0,0,-