社区讨论
1WA,5MLE求调
P8673[蓝桥杯 2018 国 C] 迷宫与陷阱参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhjsroqz
- 此快照首次捕获于
- 2025/11/04 07:54 4 个月前
- 此快照最后确认于
- 2025/11/04 07:54 4 个月前
Code
CPP#include<bits/stdc++.h>
using namespace std;
struct node {
int x,y,step,k;
};
int n,k;
int dx[4]= {1,-1,0,0},dy[4]= {0,0,1,-1};
char vis[1005][1005];
char mp[1005][1005];
node no=node{
0,0,0,0
};
queue<node>q;
int main() {
cin>>n>>k;
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
cin>>mp[i][j];
}
}
q.push(no);
while(!q.empty()) {
no=q.front();
if(no.x==n-1 &&no.y==n-1) {
cout<<no.step;
return 0;
}
q.pop();
for(int i=0; i<4; i++) {
int nx=no.x+dx[i],ny=no.y+dy[i];
node ne;
ne.x=nx,ne.y=ny,ne.step=no.step+1;
if(no.k)ne.k=no.k-1;
if(mp[nx][ny]=='%') {
ne.k=k;
}
if(nx>=0&&ny>=0&&nx<n&&ny<n&&mp[nx][ny]!='#' && (mp[nx][ny]!='X'||no.k) &&(!vis[nx][ny ]||vis[nx][ny]<ne.k)) {
vis[nx][ny]=ne.k;
q.push(ne);
}
}
}
cout<<-1;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...