https://www.luogu.org/problemnew/show/1967 题解:答案一定在原图的最大生成森林上,否则一定不最优的。所以我们先做一遍最大生成树,对于每个询问,先判断是否在同一颗树上,不在直接输出-1,在的话我们用倍增预先求出点i向上2^j的信息,每组询问(x,y)的答案在( ...
分类:
其他好文 时间:
2017-10-24 22:42:54
阅读次数:
132
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3943 题意: 有n只队伍,每个队伍有一个编号a[i]。 每场比赛有两支队伍参加,然后选一支队伍淘汰。共进行n-1场比赛,然后比赛结束。 若某场比赛是队伍i和j参加,则该场比赛的得分为a[i] ...
分类:
其他好文 时间:
2017-10-16 21:48:36
阅读次数:
246
题意:最大生成树上找 q组两个点的lca 然后求出u->lca->v这条路径上的最小边 倍增大法好 # include <iostream> # include <stdio.h> # include <stdlib.h> # include <algorithm> # include <strin ...
分类:
其他好文 时间:
2017-10-02 13:58:32
阅读次数:
142
第一眼瞎那啥贪心,然后觉得不太对劲,就滚去看题解,发现是网络流OTZ 模拟Kruskal的过程发现,若<u,v>要在最小生成树中出现,权值则小于<u,v>的边不能让u,v联通,转换成最小割模型,最大生成树同理。 跑两遍最大流。 注意边要建双向的啊,被这点坑死了。然后板子不要瞎那啥乱打。 顺便发现果然 ...
分类:
其他好文 时间:
2017-09-29 10:03:00
阅读次数:
120
题目大意: 无向图上 每次询问两个点 寻找一条路径使这条路径上的最小值最大 思路: 先跑一个最大生成树 然后在最大生成树上每次对每两个点跑一个lca 在倍增的同时开一个数组a[i][j] 记录从i个点往上跑j条路里j条路中的最小值 然后每次lca的时候顺便记录一下就行了 1 #include<ios ...
分类:
其他好文 时间:
2017-09-28 22:33:55
阅读次数:
425
Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 39963 Accepted: 10507 Description Background Hugo Heavy is happy. Afte ...
分类:
其他好文 时间:
2017-09-24 02:46:31
阅读次数:
193
题意:招募N个男人,M个女人,每个人需要给10000块钱,但是如果跟自己亲密的人被招募了,那么可以少花一些钱,所以每个人的费用为10000-已招募的跟自己亲密度的最大值,求总费用 题解: 最大生成树 最大权森林,呵呵...... 代价为森林的总权值 由于有重边,所以不能直接选每条边,构出最大生成树即 ...
分类:
其他好文 时间:
2017-09-22 21:18:43
阅读次数:
134
http://acm.hdu.edu.cn/showproblem.php?pid=3367 题目大意 伪森林就是一个无向图,这个无向图有多个连通块且每个连通块只有一个简单环。 给你一个无向图,让你找这个图的一个最大生成伪森林(即边权之和最大)。 题解 考虑到用Kruscal算法搞最大生成树时,每次 ...
分类:
其他好文 时间:
2017-09-20 23:18:19
阅读次数:
217
题目:洛谷P1967、Vijos P1843、codevs3287。 题目大意:有n个城市m条道路,每条道路有一个限重,规定货车运货不能超过限重。有一些询问,问你两个城市之间一次最多能运多少重的货(可能无法到达)。 解题思路:首先,要保证原来连通的点连通,限重要尽可能大,所以最大生成树。然后对每个询 ...
分类:
其他好文 时间:
2017-09-19 21:22:58
阅读次数:
211
https://www.luogu.org/problem/show?pid=1967 思考一下,将图的所有边按边权从大到小依次加入图,则当u与v第一次连通时,刚加入的边就是使u与v两点的路径中的最小边最大的边。 将图的所有边按边权从大到小依次加入图?这不就是Kruscal算法最大生成树吗! 所以我 ...
分类:
其他好文 时间:
2017-09-16 19:08:58
阅读次数:
230