洛谷 1550 最小生成树

  首先因为这题是连通性问题求最值,考虑最小生成树是否可做,这题一个比较不同的地方是它每一个点有权值,我们考虑能否将点的权值转化成边权,因为如果能够转化成功,我们就可以很轻松的用最小生成树求解,我们可以建立一个新的虚拟节点,并将所有的点与这个点连一条边权为那些点点权的边,然后在新图中求最小生成树即可

#include
#include
#include
using namespace std;
#define maxn 100005
struct edge
{
	int fr,to,cost;	
}e[maxn];
int n,tot,cnt,father[maxn],ans;

bool cmp(edge a,edge b)
{
	return a.cost



你可能感兴趣的:(最小生成树)