void prim()
{
memset(vis,false,sizeof(vis));
memset(dis,0x3f,sizeof(dis));
for(int i=1;i<=n;i++)dis[i]=a[S][i];
vis[S]=true;
dis[S]=0;
for(int i=1;i<n;i++)
{
int _min=oo,k=0;
for(int j=1;j<=n;j++)
if(dis[j]<_min&&!vis[j])
{
_min=dis[j];
k=j;
}
vis[k]=true;
for(int j=1;j<=n;j++)
if(!vis[j])
dis[j]=min(dis[j],a[k][j]);
}
}
最小生成树~prim
最新推荐文章于 2023-07-25 20:08:11 发布