题意:给出一棵树,树的边上都有边权值,求从一点出发的权值和最大,权值为从一点出去路径上边权的最小值

边权从大到小排序后  每次合并

取总权值最大的为父亲节点

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <cmath>
using namespace std;
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <map>
#define cler(arr, val)    memset(arr, val, sizeof(arr))
typedef long long  LL;
const int MAXN = 555;
const int MAXM = 260110;
const int INF = 0x3f3f3f3f;
const int mod = 1000000007;
struct node
{LL a1,b1;LL v;
};
struct node a[200010];
LL father[200010],rank[200010];
LL dis[200010];///边权和
LL n;
bool cmp(node c1,node c2)
{return c1.v>c2.v;
}
void init()
{for(LL i=1; i<=n; i++){father[i]=i;dis[i]=0;rank[i]=1;///以i为根的节点数}
}
LL find(LL x)
{if(x==father[x])return x;return father[x]=find(father[x]);
}
void Union(LL x,LL y,LL w)
{father[x]=y;rank[y]+=rank[x];dis[y]=w;
}
int main()
{
#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);//  freopen("out.txt", "w", stdout);
#endifLL x1,x2;while(~scanf("%lld",&n)){for(int i=1; i<n; i++)scanf("%lld%lld%lld",&a[i].a1,&a[i].b1,&a[i].v);init();sort(a+1,a+n,cmp);for(int i=1; i<n; i++){LL fa=find(a[i].a1);LL fb=find(a[i].b1);x1=dis[fa]+a[i].v*rank[fb];x2=dis[fb]+a[i].v*rank[fa];if(x1>x2)Union(fb,fa,x1);elseUnion(fa,fb,x2);}printf("%lld\n",dis[find(1)]);}return 0;
}

转载于:https://www.cnblogs.com/kewowlo/p/4088296.html

【并查集】 HDU 4424 Conquer a New Region 贪心相关推荐

  1. Junk-Mail Filter_并查集(hdu 2473)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2473 Problem Description Recognizing junk mails is a ...

  2. 带权并查集 HDU - 3047

    题意: 一圈座位有n个,给出m组序号之间的关系,比如,1 2 150 代表2号坐在1号位置序号+150,看m组数据有多少组冲突的. 思路: 带权并查集模板. #include<stdio.h&g ...

  3. 【转】并查集MST题集

    转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 ...

  4. 4th 【最小生成树并查集】征兵

    征兵 [题目描述]: 一个国王,他拥有一个国家.最近他因为国库里钱太多了,闲着蛋疼要征集一只部队要保卫国家.他选定了N个女兵和M个男兵,但事实上每征集一个兵他就要花10000RMB,即使国库里钱再多也 ...

  5. 暑期集训5:并查集 线段树 练习题G: HDU - 1754

    2018学校暑期集训第五天--并查集 线段树 练习题G  --   HDU - 1754 I Hate It 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.  这让 ...

  6. 暑期集训5:并查集 线段树 练习题F:  HDU - 1166 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题F  --   HDU - 1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A ...

  7. 暑期集训5:并查集 线段树 练习题B: HDU - 1213 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题B  --   HDU - 1213 How Many Tables Today is Ignatius' birthday. He invites ...

  8. 暑期集训5:并查集 线段树 练习题A:  HDU - 1232 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题A  --   HDU - 1232 畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅 ...

  9. hdu 1213 How Many Tables ([kuangbin带你飞]专题五 并查集)

    点击打开链接 C - How Many Tables Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

最新文章

  1. QQ WINDWOS 8 METRO版使用体验
  2. golang中的死锁
  3. 算法—详细讲解双向链表的实现(python)
  4. android aar项目_介绍如何调试Xamarin.Android的binding项目
  5. c# gdi设置画刷透明
  6. Intro OpenCL Tutorial
  7. Linux网络协议栈(一)——Socket入门(1)
  8. 面向对象(OOP)基本概念
  9. python进阶08并发之四map, apply, map_async, apply_async差异
  10. Petrozavodsk Winter-2018. Carnegie Mellon U Contest
  11. 实习笔记 6: 测试技巧,json序列化对象
  12. 关于前端页面的meta标签的属性及其用法
  13. hive sql 日期格式转换
  14. centos7 文件名中文乱码_Linux服务器文件名乱码常见问题
  15. 新进Linux菜鸟,请多多关照
  16. 关于uniapp识别不到夜神模拟器
  17. java连缀怎样写_【20200625】连缀例话:-写文章的7项好处
  18. 自动阅读 到底 能不能赚钱
  19. linux下opencv4查看版本
  20. matlab指令subplot,matlab指令subplot

热门文章

  1. 2007年9月c语言真题及答案,2007年9月二级C语言笔试真题和答案(已再修改).doc
  2. java 知乎面试题_面试题|Java基础17道常见面试题
  3. conv2d 公式_TF-卷积函数 tf.nn.conv2d 介绍
  4. vb 字符串替换_学习VB编程第69天 字符串查找与替换
  5. A、B、C、D、E类IP地址都是怎么划分的?
  6. 阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性
  7. php修改网页打印纸张 份数,打印机上复印10份怎么设置
  8. linux java javac版本_linux下java 和 javac version 不一致问题
  9. 计算机专业复试线380,445名400+的科软复试线388分,计算机学硕380分,卷炸了
  10. 网站建设技术方案_企业网站建设解决方案