HDU 1879 继续畅通工程

Posted jpphy0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1879 继续畅通工程相关的知识,希望对你有一定的参考价值。

链接 - http://acm.hdu.edu.cn/showproblem.php?pid=1879

分析

  • 连通森林
  • 已建道路代价为0

代码

/* HDU 1879 继续畅通工程 */
#include<bits/stdc++.h>
using namespace std;
#define MXN 110
#define MXM 110*55
int N, M, fa[MXN], ans;
struct Road{
	int a, b, c, s;
	bool operator<(Town t){ return c < t.c; }
}t[MXM];
int find(int r){
	if(r != fa[r]) fa[r] = find(fa[r]);
	return fa[r];
}
void merge(Road &t){
	int t1 = find(t.a);
	int t2 = find(t.b);
	if(t1 != t2){
		fa[t1] = t2;
		ans += t.c;
	}
}
int main(){
	while(scanf("%d", &N), N){
		M = N*(N-1)/2;
		for(int i = 1; i <= M; i++){
			scanf("%d %d %d %d", &t[i].a, &t[i].b, &t[i].c, &t[i].s);
			if(t[i].s) t[i].c = 0;
		}
		sort(t+1, t+M+1);
		for(int i = 0; i <= N; i++) fa[i] = i;
		ans = 0;
		for(int i = 1; i <= M; i++) merge(t[i]);
		printf("%d\\n", ans);
	}
	return 0;
}

以上是关于HDU 1879 继续畅通工程的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1879 继续畅通工程

HDU 1879 继续畅通工程 (并查集)

HDU1879--继续畅通工程(最小生成树)

hdoj1879 继续畅通工程(Prime || Kruskal)

hdu 1879 继续畅通project

所有的畅通工程[HDU1232][HDU1874][HDU1875][HDU1879]