新的开始(最小生成树)

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;
} 

谢谢

以上是关于新的开始(最小生成树)的主要内容,如果未能解决你的问题,请参考以下文章

1146. 新的开始最小生成树 虚拟源点

最小生成树:新的开始

数据结构中关于最小生成树的步骤

prim算法和kruskal算法--解最小生成树问题

最小生成树

[从今天开始修炼数据结构]图的最小生成树 —— 最清楚易懂的Prim算法和kruskal算法讲解和实现