文章
68
粉丝
691
获赞
26
访问
578.3k
#include<iostream>
#include<string>
#include<string.h>
#include<cmath>
#include<vector>
#include<map>
#include<unordered_map>
#include<algorithm>
#include<queue>
using namespace std;
#pragma warning(disable:4996)
#define inf 0x3f3f3f3f
#define MAX 105
#define ll long long
#define vec vector<int>
#define P pair<int,int>
char a[MAX][MAX];
int dx[4] = { -1,1,0,0 }, dy[4] = { 0,0,-1,1 };//上下左右
int n, m, step[MAX][MAX], T, sx, sy, tx, ty, k, ang[MAX][MAX];
bool check(int x, int y) {
if (x<1 || x>m || y<1 || y>n || a[x][y] == '*')return false;
else return true;
}
bool bfs() {
for (int i = 1; i <= m; i++)
for (int j = 1; j <= n; j++)
step[i][j] = inf;
memset(ang, -1, sizeof(ang));
queue<P> q; q.push(P(sx, sy));
step[sx][sy] = 0;
for (int i = 0; i < 4; i++) {
int xx = sx + dx[i], yy = sy + dy[i];
if (check(xx, yy)) {
...
登录后发布评论
这个题的测试用例有一组好像有问题,没有输入地图大小
这个题非常考验读题仔细程度,出题人有点反套路