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 |
哪位牛人可以帮我看一下(附注释)?WA了好几回了~~~~#include <iostream> using namespace std; int N; int map[101][101]; int h; //已建的路数 int prim(int s) //这个prim的写法没问题吧? { int i,j=0,k,sum=0,flag=0; int d[101]; for(i=1;i<=N;i++) d[i]=map[s][i]; d[s]=0; int current=s; for(i=1;i<N;i++) { int MIN=INT_MAX; for(j=1;j<=N;j++) { if(d[j]&&d[j]<MIN) { current=j; MIN=d[j]; } } if(MIN!=INT_MAX) sum+=MIN; d[current]=0; for(j=1;j<=N;j++) if(map[current][j]&&map[current][j]<d[j]) d[j]=map[current][j]; } return sum; } int main() { int i,j,t; scanf("%d",&N); for(i=1;i<=N;i++) for(j=1;j<=N;j++) { scanf("%d",&map[i][j]); } scanf("%d",&h); for(i=0;i<h;i++) { scanf("%d%d",&j,&t); map[j][t]=0; map[t][j]=0; } int Min=INT_MAX; for(i=1;i<=N;i++) { j=prim(i);//枚举所有村庄为起点 if(j<Min) Min=j; } cout<<Min<<endl; return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator