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<iostream> using namespace std; void prim(int input[26][26],int n) { int sum=0,min,i,k; int s[26]={0},lowcost[26]; s[0]=1; for(i=1;i<n;i++) lowcost[i]=input[0][i]; for(i=0;i<n-1;i++) { min=101; int j=0; for(k=1;k<n;k++) { if(!s[k]&&lowcost[k]<min) { min=lowcost[k]; j=k; } } sum+=min; s[j]=1; for(k=1;k<n;k++) { if(!s[k]&&input[j][k]<lowcost[k]) lowcost[k]=input[j][k]; } } cout<<sum<<endl; } int main() { int input[26][26],start,end; int num,n; char ch1; while(cin>>num&&num!=0) { memset(input,101,sizeof(input)); for(int i=0;i<num-1;i++) { cin>>ch1>>n; start=ch1-'A'; for(int j=0;j<n;j++) { cin>>ch1; end=ch1-'A'; cin>>input[start][end]; input[end][start]=input[start][end]; } } prim(input,num); } return 1; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator