10分,WA求助,SPFA

P1828 [USACO3.2] 香甜的黄油 Sweet Butter

??为什么代码打不上去。再发一遍好了。 ```cpp #include<cstdio> #include<queue> #define N 0x7fffffff using namespace std; int n,p,c; int num[805];//每个牧场中有多少奶牛 int map[805][805]; //SPFA int dis[805];bool haven[805]; long long ans=N; void init(int a){ for(int i=1;i<=p;i++){ haven[i]=0; if(map[a][i]==N) dis[i]=N; else dis[i]=map[a][i]; if(i==a){ dis[i]=0; haven[i]=1; } } } int main(){ scanf("%d%d%d",&n,&p,&c); for(int i=1;i<=p;i++) for(int j=1;j<=p;j++){ map[i][j]=N; if(i==j) map[i][j]=0; } for(int i=1;i<=n;i++){ int x; scanf("%d",&x); num[x]++; } for(int i=1;i<=c;i++){ int a,b,d; scanf("%d%d%d",&a,&b,&d); map[a][b]=d; map[b][a]=d; } for(int i=1;i<=p;i++){ queue<int> q; q.push(i); init(i); while(!q.empty()){ int t; t=q.front(); q.pop(); for(int k=1;k<=p;k++) if(dis[k]>dis[t]+map[t][k]){ dis[k]=dis[t]+map[t][k]; if(!haven[k]) q.push(k); haven[k]=1; } haven[t]=0; } long long cnt=0; for(int j=1;j<=p;j++) cnt+=num[j]*dis[j]; ans=ans<cnt?ans:cnt; } if(ans==N) ans=0; printf("%d",ans); return 0; } ```
by zdupttnk_s @ 2018-08-29 22:15:53


你。。distSPFA时初始化了吗
by C201914 @ 2018-08-29 22:28:34


哎呀不理我
by C201914 @ 2018-08-29 22:29:23


跑了
by C201914 @ 2018-08-29 22:29:29


memset(dis,0x3f,dis)【滑稽】
by nth_element @ 2018-08-29 22:31:09


|