新的开始(最小生成树)
Posted SSL_LKJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新的开始(最小生成树)相关的知识,希望对你有一定的参考价值。
新的开始
解题思路
prim模板题
AC代码
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int sum=2147483647;
int n,ans,b[305],c[305],f[305][305];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&f[0][i]);
f[i][0]=f[0][i];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&f[i][j]);
for(int i=1;i<=n;i++)//初值
f[i][i]=sum;
b[0]=1;
for(int i=1;i<=n;i++)//初值
c[i]=f[0][i];
for(int i=1;i<=n;i++)//prim
{
int mmin=sum,k=0;
for(int j=1;j<=n;j++)
if((!b[j])&&(c[j]<mmin))
{
mmin=c[j];
k=j;
}
ans+=c[k];
b[k]=1;
for(int j=1;j<=n;j++)
if(f[k][j]<c[j])
c[j]=f[k][j];
}
printf("%d",ans);
return 0;
}
谢谢
以上是关于新的开始(最小生成树)的主要内容,如果未能解决你的问题,请参考以下文章