int prim(int n,int v)
{
int i,j,k;
tot=0;
vis[v]=1;
for(i=1;i<=n;i++)
{
lowcost[i]=edge[v][i];
}
for(i=2;i<=n;i++)
{
mi=INF;
for(j=1;j<=n;j++)
{
if(!vis[j]&&lowcost[j]<mi)
{
mi=lowcost[j];
v=j;
}
}
vis[v]=1;
tot+=mi;
for(j=1;j<=n;j++)
{
if(!vis[j]&&edge[j][v]<lowcost[j])
{
lowcost[j]=edge[j][v];
}
}
}
return tot;
}
Prim模板
最新推荐文章于 2020-01-28 18:22:02 发布