刷题之路-图论

AcWing346.走廊泼水节

传送门

题目描述

做题思路及代码

/*
将树中的所有边按权值升序排序,依次扫描,
例如取出边(u,v,w),已经和u相连的点都需要和已经和v相连的点连线,并且
边的权值不能小于等于w,因此总共需要和u相连点的数量乘以和v相连的点的数量,
这是边的数量,再乘以w+1.执行该过程,知道扫描完所有边
*/
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 6005;
int p[N], s[N];
struct edge
{int u, v, w;bool operator<(const edge &x) const{return w < x.w;}
}e[N];
int find(int x)
{if(p[x] != x) p[x] = find(p[x]);return p[x];
}
int main()
{int t;cin >> t;while(t --){int n;cin >> n;for(int i = 1; i < n; i ++) cin >> e[i].u >> e[i].v >> e[i].w;sort(e + 1, e + n);for(int i = 1; i <= n; i ++) p[i] = i, s[i] = 1;int ans = 0;for(int i = 1; i < n; i ++){int a = find(e[i].u), b = find(e[i].v), w = e[i].w;ans += (w + 1) * (s[a] * s[b] - 1);s[b] += s[a];p[a] = b;}cout << ans << endl;        }return 0;
}

AcWing346.走廊泼水节相关推荐

  1. Contest Hunter CH6201 走廊泼水节 最小生成树 Kruskal

    $ \rightarrow $ 戳我进CH原题 走廊泼水节 0x60「图论」例题 总时限10 s $ \quad $ 总内存256 MiB 描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边, ...

  2. Acwing 346.走廊泼水节(最小生成树)

    Acwing 346.走廊泼水节 题意 给定一棵 N 个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树. 求增加的边的权值总和最小是多少. 注意: 树中的所有边 ...

  3. 走廊泼水节(最小生成树求最小完全图)

    传送门:走廊泼水节 思路:在求最小生成树的过程中会有很多连通块,合并每一个连通块时同时也要将两个连通块连成一个完全图,合并联通块的w是最长的一条边,也要保证是完全图求最小生成树时不变的一条边,所以额外 ...

  4. TYVJ 1391 走廊泼水节

    描述 我们一共有N个OIER打算参加这个泼水节,同时很凑巧的是正好有N个水龙头(至于为什么,我不解释).N个水龙头之间正好有N-1条小道,并且每个水龙头都可以经过小道到达其他水龙头(这是一棵树,你应该 ...

  5. CH - 6201 走廊泼水节(最小生成树,水题)

    题目链接:点击查看 题目大意:给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树(增加的边权必须大于最小生成树上这两个点的边权),求增加的边的边权总和的 ...

  6. tyvj 1391 走廊泼水节【最小生成树】By cellur925

    题目传送门 题意简化:给你一棵树,要求你加边使它成为完全图(任意两点间均有一边相连) ,满足原来的树是这个图的最小生成树.求加边的价值最小是多少. 考虑Kruskal的过程,我们每次找一条最短的,两边 ...

  7. CH 6201 走廊泼水节

    玄学之门 题目: 分析: 代码: 题目: 传送门 分析: 类似kruskalkruskalkruskal算法的过程,对于一条边,如果它们的两个点属于两个不同的集合,那么这些集合间都要连边,为保证最小生 ...

  8. 346. 走廊泼水节

    给定一棵 N 个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树. 求增加的边的权值总和最小是多少. 注意: 树中的所有边权均为整数,且新加的所有边权也必须为整数 ...

  9. 【图论专题】最小生成树的扩展应用

    整理的算法模板合集: ACM模板 最小生成树的扩展应用 能用kruskal打死不用prim kruskal是要把所有的边都遍历一遍 图论中的超级源点就比较常用,要时刻想到它 题目列表: 题目 算法 A ...

最新文章

  1. 2018年各大互联网前端面试题四(美团)
  2. MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
  3. aop springboot 传入参数_Spring、SpringMVC和SpringBoot看这一篇就够了!
  4. 5分钟从零构建第一个 Apache Flink 应用
  5. mqtt协议详解_IoT物联网设备上云技术方案详解
  6. 单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...
  7. blongsTo 用法
  8. 《深入理解Spark:核心思想与源码分析》——1.3节阅读环境准备
  9. servlet执行流程代码分析
  10. Leetcode122. 买卖股票的最佳时机 II(贪心)
  11. 布易般的旅途(一) 像流水一般的生活
  12. 通过linux访问IPMI端口,Linux通过命令行设置IPMI的解决方法(图)
  13. MacBook安装telnet工具和使用
  14. 利用wireshark分析Voip语音RTP协议
  15. 程序员慵懒的周末:不想出门还想吃肯德基香辣鸡翅?
  16. 一起学习LLVM(一)
  17. Stop worrying and start living
  18. 更新提示!Chrome新的零日漏洞正被利用
  19. aliases节点解析
  20. Rate Limiting速率限制

热门文章

  1. 浅析泵站自动化技术的发展趋势
  2. 使用百度统计API接口抓取数据
  3. 网页设计作业学生网页课程设计作业成品DIV+CSS-中国传统文化
  4. [不好分类]这个国家会好吗
  5. 修改华硕电脑的instantfun键
  6. 测试用例、测试流程模型、测试方法详解 超详细分解
  7. Android 官方网站地址
  8. safari隐私模式_如何优化Safari以获得最大的隐私
  9. 名言摘录 - 在水木phd版看到的爱因斯坦的一句话
  10. 工作中出现问题及最终解决办法