int prim()
{
int sum=0;
dis[1]=0;
for(int i=1;i<=n;i++)
{
int pos,t=inf;
for(int j=1;j<=n;j++)
{
if(hash[j]==0)
{
if(dis[j]<t)
{
t=dis[j];
pos=j;
}
}
}
hash[pos]=1;
if(pos==n) break;
for(int j=1;j<=n;j++)
{
if(hash[j]==0)
{
if(map[pos][j]!=inf&&map[pos][j]<dis[j])
dis[j]=map[pos][j];
}
}
}
for(int i=1;i<=n;i++)
{
sum+=dis[i];
}
return sum;//全省畅通的最小费用。
}//最小生成树
浙公网安备 33010602011771号