如果你是和我一样没学过c++用c(或者沿用c++)的套路来写这道题的
那么你在输入上可能遇到这样的问题
1.无法输完给定的行数
2.无法得到结果(甚至死机……)
那么,这篇文章可能有用
先回顾一下原题
例题:
迷宫的最短路径
给定一个大小为N×M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四个的通道移动。请求出从起点到终点所需的最小步数。请注意,本题假定从起点一定可以移动到终点。(N,M≤100)('#', '.' , 'S', 'G'分别表示墙壁、通道、起点和终点)
输入:
10 10
#S######.#
......#..#
.#.##.##.#
.#........
##.##.####
....#....#
.#######.#
....#.....
.####.###.
....#...G#
输出:
22
我原先的代码是这样的
#include<iostream>
#include<queue>
#pragma warning(disable:4996)
using namespace std;
const int INF = 100000000, maxn = 105;
typedef pair<int, int> P;//可以使用结构体
char maze[maxn][maxn];
int n, m, sx, sy, gx, gy, d[maxn][maxn];//到各个位置的最短距离的数组
int dx[4] = {
1,0,-1,0 }, dy[4] = {
0,1,0