题解
2024-10-23 12:48:19
发布于:浙江
8阅读
0回复
0点赞
注释懒得写了
易如反掌
#include <bits/stdc++.h>
using namespace std;
int mp[10][10],step[10][10],vis[10][10],nx,ny;
int dp[4][2] = {{-1,0},{0,-1},{1,0},{0,1}};
struct node{
int x,y;
}r;
int main(){
for(int i = 1;i <= 5;i++){
for(int j = 1;j <= 5;j++){
cin >> mp[i][j];
}
}
memset(step,-1,sizeof(step));
step[1][1] = 0;
vis[1][1] = 1;
queue<node> q;
q.push({1,1});
while(q.size()){
r = q.front();
q.pop();
for(int i = 0;i < 4;i++){
nx = r.x + dp[i][0];
ny = r.y + dp[i][1];
if(nx >= 1 && nx <= 5 && ny >= 1 && ny <= 5 && !vis[nx][ny] && !mp[nx][ny]){
step[nx][ny] = step[r.x][r.y] + 1;
vis[nx][ny] = 1;
q.push({nx,ny});
}
}
}
cout << step[5][5];
}
全部评论 4
顶
2024-10-23 来自 浙江
0顶
2024-10-23 来自 浙江
0顶
2024-10-23 来自 浙江
0顶
2024-10-23 来自 浙江
0
有帮助,赞一个