Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
谁能帮我查一下错哦!谢谢#include<stdio.h> #include<string.h> long u[1001][1001],s[1001]; long ll[1001],mm[1001]; long f[1001],min; bool uu[1001]; int main() { int n,t,i,a,b,l,j; bool flag; scanf("%d%d",&t,&n); for (i=1;i<=n;i++) for (j=1;j<=n;j++) u[i][j]=100000001; for (i=1;i<=t;i++) { scanf("%d%d%ld",&a,&b,&min); if (u[a][b]>min) { u[a][b]=min; u[b][a]=min; } } l=1; s[1]=n; f[1]=0; flag=true; memset(uu,true,sizeof(uu)); uu[n]=false; mm[1]=100000001; for (i=1;i<=n-1;i++) if (mm[1]>u[n][i]) { mm[1]=u[n][i]; ll[1]=i; } while (flag) { min=100000001; for (i=1;i<=l;i++) if (mm[i]<min) { a=i; b=ll[i]; min=mm[i]; } l++; s[l]=b; uu[b]=false; f[l]=f[a]+min; for (i=1;i<=l-1;i++) if (ll[i]==b) { mm[i]=100000001; for (j=1;j<n;j++) if (uu[j]&&u[s[i]][j]<mm[i]) { mm[i]=u[s[i]][j]; ll[i]=j; } } mm[l]=100000001; for (i=1;i<n;i++) if (uu[i]&&u[b][i]<mm[l]) { mm[l]=u[b][i]; ll[l]=i; } if (b==1) flag=false; } printf("%ld\n",f[l]); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator