#include <iostream>
using namespace std;
const int M=100000000;
int map[101][101],dist[101],pre[101];
int m,n;
void readData();
int prim();
int main()
{
int cs,rst;
readData();
cout<<prim()<<endl;
return 0;
}
int prim()
{
int i,j,k,sum,used[101];
for (i=0;i<=n;i++)
{
dist[i]=M;
pre[i]=1;
used[i]=0;
}
dist[1]=0;
for (sum=0,i=1;i<=n;i++)
{
for (j=1,k=0;j<=n;j++)
if (!used[j]&&dist[j]<dist[k])
k=j;
sum+=dist[k];
used[k]=1;
for (j=1;j<=n;j++)
if (!used[j]&&map[k][j]<dist[j])
{
dist[j]=map[k][j];
pre[j]=k;
}
}
return sum;
}
void readData()
{
int i,j;
int tmpu,tmpv,tmplen;
cin>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
map[i][j]=M;
for (i=1;i<=m;i++)
{
cin>>tmpu>>tmpv>>tmplen;
map[tmpu][tmpv]=tmplen;
map[tmpv][tmpu]=tmplen;
}
}
Prim
最新推荐文章于 2024-02-26 08:00:00 发布