文章
2
粉丝
0
获赞
2
访问
275
#include <bits/stdc++.h>
using namespace std;
typedef struct node {
int sx,sy;
int step;
} node;
const int maxn=105;
char mpt[maxn][maxn];
int dis[maxn][maxn];
int vis[maxn][maxn];
int dir[4][2]= {0,1,1,0,0,-1,-1,0};
void bfs(int sx,int sy,int n,int m) {
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
if(mpt[i][j]=='.') {
dis[i][j]=-1;
} else {
dis[i][j]=-2;
}
vis[i][j]=0;
}
}
queue<node> q;
q.push({sx,sy,0});
vis[sx][sy]=1;
dis[sx][sy]=0;
while(!q.empty()) {
node now=q.front();
q.pop();
int x=now.sx ;
int y=now.sy ;
int step=now.step;
for(int i=0; i<4; i++) {
int nx=x+dir[i][0];
int ny=y+dir[i][1];
int nstep=step+1;
if(nx<1||nx>n||ny<1||ny>m) continue;
if(mpt[nx][ny]=='.'&&vis[nx][ny]==0) {
q.push({nx,ny,nstep});
vis[nx][ny]=1;
dis[nx][ny]=nstep;
}
}
}
}
int main() {
int n,m,t;
int sx,sy;
while(c...
登录后发布评论
暂无评论,来抢沙发