CH 6201 走廊泼水节题解】的更多相关文章

题目链接:CH6201 当时在海亮考试的第一题: 心得:其实一个算法是要真正理解这个思路和过程,而并不是单单知道它是用来写什么题的: 思路:n个节点有n-1条边,把这n-1条边按照权值从小到大排序,有点类似Kruskal算法的过程: 设当前扫描到边(x,y,z)时,若x,y不在同一个集合,此时应该合并Sx,Sy,此时,对于x所在集合中除x之外的点u,y所在集合中除y之外的点v,完全图中u与v之间肯定要连一条边,所以共同构成一个环,因为要保证边(x,y)一定在最小生成树中,就必须让(x,y)是连接…
描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 我们一共有N个OIER打算参加这个泼水节,同时很凑巧的是正好有N个水龙头(至于为什么,我不解释).N个水龙头之间正好有N-1条小道,并且每个水龙头都可以经过小道到达其他水龙头(这是一棵树,你应该懂的..).但是OIER门为了迎接中中的挑战,决定修建一些个道路(至于怎么修,秘密~),使得每个水龙头到每个水龙头之间都有一条直接的道路连接(也就是构成…
很有意思的题,所以还是截lyddalao的课件 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=6005; int T,n,f[N],s[N]; long long ans; struct qwe { int u,v,w; }a[N]; bool cmp(const qwe &a,const qwe &b) { return…
这道题大致题意就是让一棵树任意两点有连边(也就是完全图),但是补完后最小生成树是一开始的那棵树,问最小加的边权之和是多少. 了解题意后,我们可以想到用Kruskal(废话),当每两个集合合并的时候,除了本身的那条边,一共还会加上\(siz_i * siz_j - 1\)条边,那么每条边的大小也就是边\(i,j\)的长度\(+1\)了,具体的可以看下代码. 代码: #include <bits/stdc++.h> using namespace std; struct node{ int l ,…
6201 走廊泼水节 0x60「图论」例题 描述 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 我们一共有N个OIER打算参加这个泼水节,同时很凑巧的是正好有N个水龙头(至于为什么,我不解释).N个水龙头之间正好有N-1条小道,并且每个水龙头都可以经过小道到达其他水龙头(这是一棵树,你应该懂的..).但是OIER门为了迎接中中的挑战,决定修建一些个道路(至于怎么修,秘密~),使得每个水龙头到每个…
[Tvvj1391]走廊泼水节 Description 给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 完全图:完全图是一个简单的无向图,其中每对不同的顶点之间都恰连有一条边相连(来自百度百科) 输入格式 本题为多组数据 第一行t,表示有t组测试数据 对于每组数据 第一行N,表示水龙头的个数(当然也是OIER的个数): 2到N行,每行三个整数X,Y,Z:表示水龙头X和水龙头Y有一条长度为Z的小道 输出格式 对于…
「CH6201」走廊泼水节 传送门 考虑 \(\text{Kruskal}\) 的过程以及用到一个最小生成树的性质即可. 在联通两个联通块时,我们肯定会选择最小的一条边来连接这两个联通块,那么这两个联通块之间的其他边都必须比这条边长,不然最小生成树就不唯一. 又为了让答案最小化,我们就只需要让这些其他边比当前边多 \(1\) 就好了. 参考代码: #include <algorithm> #include <cstdio> #define rg register #define f…
题目链接: http://joyoi.org/problem/tyvj-1391 思路: 首先这需要一个推论: "给定一张无向图,若用\(k(k<n-1)\)条边构成一个生成森林(可以理解为多个互不相通的生成树),再从剩下的\(m-k\)条边中选出\(n-1-k\)条边构成改该图的最小生成树,则这\(m-k\)条边中一定包含连接两个不相连生成森林的最小边权的两点" 这个推论是由这个定理得到: "一张无向图的最小生成树一定包含边权最小的那条边",这个定理可以很容…
Description 话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老江湖了,当然很快就发现了我们的小阴谋,于是他准备好水枪迫不及待的想要加入我们了. 我们一共有N个OIER打算参加这个泼水节,同时很凑巧的是正好有N个水龙头(至于为什么,我不解释).N个水龙头之间正好有N-1条小道,并且每个水龙头都可以经过小道到达其他水龙头(这是一棵树,你应该懂的..).但是OIER门为了迎接中中的挑战,决定修建一些个道路(至于怎么修,秘密~),使得…
时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景  话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老江湖了,当然很快就发现了我们的小阴谋,于是他准备好水枪迫不及待的想要加入我们了. 描述 我们一共有N个OIER打算参加这个泼水节,同时很凑巧的是正好有N个水龙头(至于为什么,我不解释).N个水龙头之间正好有N-1条小道,并且每个水 龙头都可以经过小道到达其他水龙头(这是一棵树,你应该懂的..).但是…