|
- #include<iostream>
- using namespace std;
- const int M=5010;
- int n,m,x,y,len=0;
- int a[M][M],ans,mina,pos;
- bool visit[M],flag;
- int main()
- {
- cin>>n>>m;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- a[i][j]=999999;
- for(int i=1; i<=m; i++)
- {
- cin>>x>>y;
- int pi;
- cin>>pi;
- if(a[x][y]>pi)
- {
- a[x][y]=pi;
- a[y][x]=a[x][y];
- }
- }
- for(int i=1; i<=n; i++)
- a[i][i]=0;
- while(len<n)
- {
- mina=9999;
- for(int i=1; i<=n; i++)
- {
- if(visit[i])
- continue;
- if(a[1][i]<mina)
- {
- mina=a[1][i];
- pos=i;
- }
- }
- // cout<<pos<<" ";
- ans+=mina;
- visit[pos]=1;
- len++;
- for(int i=1; i<=n; i++)
- {
- if(visit[i])
- continue;
- if(a[pos][i]<a[1][i])
- a[1][i]=a[pos][i];
- }
- }
- cout<<ans<<endl;
- return 0;
- }
复制代码 |
|