HDOJ 4424 Conquer a New Region
来源:互联网 发布:win10网络共享中心属性 编辑:程序博客网 时间:2024/04/29 09:19
并查集
边从大到小排序,每加入一条边就判断应该把首都建到哪一边.....
Conquer a New Region
Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1169 Accepted Submission(s): 373
Problem Description
The wheel of the history rolling forward, our king conquered a new region in a distant continent.
There are N towns (numbered from 1 to N) in this region connected by several roads. It's confirmed that there is exact one route between any two towns. Traffic is important while controlled colonies are far away from the local country. We define the capacity C(i, j) of a road indicating it is allowed to transport at most C(i, j) goods between town i and town j if there is a road between them. And for a route between i and j, we define a value S(i, j) indicating the maximum traffic capacity between i and j which is equal to the minimum capacity of the roads on the route.
Our king wants to select a center town to restore his war-resources in which the total traffic capacities from the center to the other N - 1 towns is maximized. Now, you, the best programmer in the kingdom, should help our king to select this center.
There are N towns (numbered from 1 to N) in this region connected by several roads. It's confirmed that there is exact one route between any two towns. Traffic is important while controlled colonies are far away from the local country. We define the capacity C(i, j) of a road indicating it is allowed to transport at most C(i, j) goods between town i and town j if there is a road between them. And for a route between i and j, we define a value S(i, j) indicating the maximum traffic capacity between i and j which is equal to the minimum capacity of the roads on the route.
Our king wants to select a center town to restore his war-resources in which the total traffic capacities from the center to the other N - 1 towns is maximized. Now, you, the best programmer in the kingdom, should help our king to select this center.
Input
There are multiple test cases.
The first line of each case contains an integer N. (1 <= N <= 200,000)
The next N - 1 lines each contains three integers a, b, c indicating there is a road between town a and town b whose capacity is c. (1 <= a, b <= N, 1 <= c <= 100,000)
The first line of each case contains an integer N. (1 <= N <= 200,000)
The next N - 1 lines each contains three integers a, b, c indicating there is a road between town a and town b whose capacity is c. (1 <= a, b <= N, 1 <= c <= 100,000)
Output
For each test case, output an integer indicating the total traffic capacity of the chosen center town.
Sample Input
41 2 22 4 12 3 141 2 12 4 12 3 1
Sample Output
43
Source
2012 Asia ChangChun Regional Contest
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=200200;typedef long long int LL;struct Edge{LL u,v,w;}edge[maxn];bool cmp(Edge x,Edge y){return x.w>y.w;}LL n;LL fa[maxn];LL value[maxn];LL sz[maxn];LL find(LL x){if(x==fa[x]) return x;return fa[x]=find(fa[x]);}int main(){while(scanf("%I64d",&n)!=EOF){for(LL i=0;i<n-1;i++){LL a,b,c;scanf("%I64d%I64d%I64d",&a,&b,&c);edge[i].u=a; edge[i].v=b; edge[i].w=c;fa[i]=i;sz[i]=1;value[i]=0;}fa[n-1]=n-1; sz[n-1]=1; value[n-1]=0;fa[n]=n;sz[n]=1;value[n]=0;sort(edge,edge+n-1,cmp);for(LL i=0;i<n-1;i++){LL u=edge[i].u,v=edge[i].v; LL w=edge[i].w;LL U=find(u),V=find(v);if(U==V) continue;LL VVV=max(value[U]+w*sz[V],value[V]+w*sz[u]);fa[U]=V;value[V]=VVV;sz[V]=sz[V]+sz[U];}cout<<value[find(1)]<<endl;}return 0;}
1 0
- HDOJ 4424 Conquer a New Region
- 【并查集】 HDOJ 4424 Conquer a New Region
- hdu 4424 Conquer a New Region
- hdu 4424 Conquer a New Region
- hdu 4424 Conquer a New Region
- HDU 4424 Conquer a New Region
- hdu 4424 Conquer a New Region
- zoj3659 Conquer a New Region
- HDU4424--Conquer a New Region
- hdu4424 Conquer a New Region
- Conquer a New Region HDU
- Conquer a New Region HDU
- Conquer a New Region HDU
- Conquer a New Region HDU
- Conquer a New Region HDU
- Conquer a New Region UVA
- Hdu 4424 Conquer a New Region 并查集
- hdu 4424 Conquer a New Region (贪心+并查集)
- 插入排序
- 顺顺网页电子表格控件开源下载
- xml方式封装通信数据方法
- Android数据库高手秘籍(五)——LitePal的存储操作
- Linux内存使用调整
- HDOJ 4424 Conquer a New Region
- Linq实现DaTaTable或者List里面数据值不重复
- 计算阶乘n!末尾0的个数
- 数据结构 第一章绪论
- iOS 8 Size Classes初探
- 更改归属地在界面上的位置
- NAND芯片的读写及ECC检验软硬件实现
- 软件测试理论面试题
- 黑马程序员——java基础:异常学习日志