【并查集】 HDU 4424 Conquer a New Region 贪心
边权从大到小排序后 每次合并
取总权值最大的为父亲节点
#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 贪心相关推荐
- Junk-Mail Filter_并查集(hdu 2473)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2473 Problem Description Recognizing junk mails is a ...
- 带权并查集 HDU - 3047
题意: 一圈座位有n个,给出m组序号之间的关系,比如,1 2 150 代表2号坐在1号位置序号+150,看m组数据有多少组冲突的. 思路: 带权并查集模板. #include<stdio.h&g ...
- 【转】并查集MST题集
转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 ...
- 4th 【最小生成树并查集】征兵
征兵 [题目描述]: 一个国王,他拥有一个国家.最近他因为国库里钱太多了,闲着蛋疼要征集一只部队要保卫国家.他选定了N个女兵和M个男兵,但事实上每征集一个兵他就要花10000RMB,即使国库里钱再多也 ...
- 暑期集训5:并查集 线段树 练习题G: HDU - 1754
2018学校暑期集训第五天--并查集 线段树 练习题G -- HDU - 1754 I Hate It 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让 ...
- 暑期集训5:并查集 线段树 练习题F: HDU - 1166
2018学校暑期集训第五天--并查集 线段树 练习题F -- HDU - 1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A ...
- 暑期集训5:并查集 线段树 练习题B: HDU - 1213
2018学校暑期集训第五天--并查集 线段树 练习题B -- HDU - 1213 How Many Tables Today is Ignatius' birthday. He invites ...
- 暑期集训5:并查集 线段树 练习题A: HDU - 1232
2018学校暑期集训第五天--并查集 线段树 练习题A -- HDU - 1232 畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅 ...
- hdu 1213 How Many Tables ([kuangbin带你飞]专题五 并查集)
点击打开链接 C - How Many Tables Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
最新文章
- QQ WINDWOS 8 METRO版使用体验
- golang中的死锁
- 算法—详细讲解双向链表的实现(python)
- android aar项目_介绍如何调试Xamarin.Android的binding项目
- c# gdi设置画刷透明
- Intro OpenCL Tutorial
- Linux网络协议栈(一)——Socket入门(1)
- 面向对象(OOP)基本概念
- python进阶08并发之四map, apply, map_async, apply_async差异
- Petrozavodsk Winter-2018. Carnegie Mellon U Contest
- 实习笔记 6: 测试技巧,json序列化对象
- 关于前端页面的meta标签的属性及其用法
- hive sql 日期格式转换
- centos7 文件名中文乱码_Linux服务器文件名乱码常见问题
- 新进Linux菜鸟,请多多关照
- 关于uniapp识别不到夜神模拟器
- java连缀怎样写_【20200625】连缀例话:-写文章的7项好处
- 自动阅读 到底 能不能赚钱
- linux下opencv4查看版本
- matlab指令subplot,matlab指令subplot
热门文章
- 2007年9月c语言真题及答案,2007年9月二级C语言笔试真题和答案(已再修改).doc
- java 知乎面试题_面试题|Java基础17道常见面试题
- conv2d 公式_TF-卷积函数 tf.nn.conv2d 介绍
- vb 字符串替换_学习VB编程第69天 字符串查找与替换
- A、B、C、D、E类IP地址都是怎么划分的?
- 阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性
- php修改网页打印纸张 份数,打印机上复印10份怎么设置
- linux java javac版本_linux下java 和 javac version 不一致问题
- 计算机专业复试线380,445名400+的科软复试线388分,计算机学硕380分,卷炸了
- 网站建设技术方案_企业网站建设解决方案