社区讨论
求助!!
P2895[USACO08FEB] Meteor Shower S参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0ssaq
- 此快照首次捕获于
- 2025/11/03 18:51 4 个月前
- 此快照最后确认于
- 2025/11/03 18:51 4 个月前
ber为什么同样的代码在本地运行没问题,输出也正确,到了洛谷就输出了0啊?
CPP#include<bits/stdc++.h>
using namespace std;
const int N=305;
int n;
int dx[5]={0,0,1,0,-1};
int dy[5]={0,1,0,-1,0};
int a[N][N];
int v[N][N];
int t[N][N];
queue<pair<int,int> > q;
void bfs(){
q.push({0,0});
v[0][0]=1;
while(!q.empty()){
int x=q.front().first;
int y=q.front().second;
q.pop();
int s=t[x][y]+1;
if(a[x][y]==-1){
cout<<s-1;
return ;
}
for(int i=1;i<5;i++){
int xx=x+dx[i],yy=y+dy[i];
if(v[xx][yy]!=0&&(a[xx][yy]==-1||s<a[xx][yy])&&xx>=0&&yy>=0){
v[xx][yy]=1;
t[xx][yy]=s;
q.push({xx,yy});
}
}
}
cout<<-1;
return ;
}
int main(){
cin>>n;
for(int i=0;i<=N;i++)
for(int j=0;j<=N;j++)
a[i][j]=-1;
for(int i=1;i<=n;i++){
int x,y,t;
cin>>x>>y>>t;
for(int j=0;j<5;j++){
int xx=x+dx[j],yy=y+dy[j];
if((a[xx][yy]==-1||a[xx][yy]>t)&&xx>=0&&yy>=0) a[xx][yy]=t;
}
}
bfs();
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...