49分求大佬看看

P2895 [USACO08FEB] Meteor Shower S

@[ice_moon_soul](/user/1068299) 建议你像这样写吧 ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 1e3 + 5; const int mod = 1e9 + 7; int vi[305][305]; bool b[305][305]; int px[4]={-1,1,0,0},py[4]={0,0,-1,1}; int main() { ios::sync_with_stdio(false); cin.tie(0); int m; memset(vi,0x3f,sizeof(vi)); cin>>m; while(m--) { int x,y,t; cin>>x>>y>>t; vi[x][y]=min(vi[x][y],t); for(int i=0;i<4;i++) { int xx=x+px[i],yy=y+py[i]; if(xx>=0&&yy>=0) vi[xx][yy]=min(vi[xx][yy],t); } } queue<pair<pair<int,int>,int>> q; q.push(make_pair(make_pair(0,0),0)); while(!q.empty()) { pair<pair<int,int>,int> tmp=q.front(); q.pop(); int x=tmp.first.first,y=tmp.first.second; b[x][y]=true; if(vi[x][y]>1e6) { cout<<tmp.second; return 0; } for(int i=0;i<4;i++) { int xx=x+px[i],yy=y+py[i]; if(xx>=0&&yy>=0&&tmp.second+1<vi[xx][yy]&&!b[xx][yy]) q.push(make_pair(make_pair(xx,yy),tmp.second+1)),b[xx][yy]=true; } } cout<<-1; return 0; } ```
by JiHuan @ 2024-03-26 21:00:06


@[ice_moon_soul](/user/1068299) 还有就是流星的爆炸范围可以到301
by JiHuan @ 2024-03-26 21:05:34


|