啊哈算法学习笔记,简单的稠密图求最小生成树问题
#include <cstdio>
using namespace std;
const int inf = 0x7fffffff;
int n;
int a[500][500];
int dis[500];
int prim()
{
int ans=0,cnt=0;
int k,min_road;
++cnt;
for(int i=0;i<n;++i)
{
dis[i]=a[0][i];
}
while(cnt<n)
{
min_road=inf;
for(int i=0;i<n;++i)
{
// 选出最小的一条边
if(dis[i]!=0 && dis[i]<min_road)
{
min_road=dis[i];
k=i;
}
}
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
scanf("%d",&a[i][j]);
}
}
printf("%d",prim());
}
return 0;
}