标签:
HDU-1233
#include <iostream> #define INF 1000000 using namespace std; int Map[105][105]; bool NewNode[105]; bool OldNode[105]; bool UsedNode[105]; int lowcast[105]; int main(int argc, const char * argv[]) { int n; cin.sync_with_stdio(false); while(cin>>n) { if(n==0) break; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) Map[i][j]=Map[j][i]=INF; for(int i=1;i<=n;i++) { NewNode[i]=false; OldNode[i]=true; lowcast[i]=INF; } for(int i=1;i<=n*(n-1)/2;i++) { int a,b,val; cin>>a>>b>>val; Map[a][b]=Map[b][a]=val; } int counter=1,pos=1,sum=0; while(counter!=n) { NewNode[pos]=true; OldNode[pos]=false; for(int i=1;i<=n;i++) { if(OldNode[i]==true&&Map[pos][i]<lowcast[i]) lowcast[i]=Map[pos][i]; } int Min=INF,Minpos; for(int i=1;i<=n;i++) { if(OldNode[i]==true&&lowcast[i]<Min) { Minpos=i; Min=lowcast[i]; } } pos=Minpos; counter++; sum+=Min; } cout<<sum<<endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/LukeStepByStep/p/5797888.html