51pts求调

P4878 [USACO05DEC] Layout G

破案了,SPFA应该是这样的: ```cpp void SPFA(long long begin){ if(la)return; for(long long i=1;i<=n;i++){ dist[i]=9e18; } memset(report,false,sizeof(report)); memset(vis,0,sizeof(vis)); dist[begin]=0; vis[begin]=0; queue<long long>q; q.push(begin); vis[begin]=1; while(!q.empty()){ long long d=q.front(); q.pop(); report[d]=false; if(n<=vis[d]){ printf("-1\n"); la=true; return; } for(long long i=0;i<e[d].size();i++){ if(vis[e[d][i].end]==0||dist[d]+e[d][i].len<dist[e[d][i].end]){ vis[e[d][i].end]++; dist[e[d][i].end]=dist[d]+e[d][i].len; if(report[e[d][i].end]==false)q.push(e[d][i].end); report[e[d][i].end]=true; } } } return; } ```
by Nuclear_Pasta @ 2022-09-20 19:57:57


|