[USACO 18Jan Gold] Moo Tube
Posted myrcella
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[USACO 18Jan Gold] Moo Tube相关的知识,希望对你有一定的参考价值。
题目大意:
给定一棵节点数为n的树,每两点之间的关联度为两点路径上权值最小的边。q次查询,每次查询某个点关联度大于等于k的节点的数量。
n,q<=100,000
题目解法:
数据范围考虑排序后离线操作。
显然,对于每个点,符合条件的节点一定是一个包含该点的连通块。因此我们可以考虑每次操作将所有权值>=k的边的两个端点合并到同一个连通块(通过并查集实现),然后再用一个数组记录每个连通块的大小,对于每次查询输出该点所在连通块大小即可。为了降低合并操作的复杂度,我们考虑到如果将所有操作按照k从大到小排序,我们只需要在前面的基础上合并新的边即可。这样总的合并次数就是边数。为了更快的找到需要新加的边,还需要把边按照权值排序,这样找边的复杂度也是边数。总的复杂度是O(n log n)
以上是关于[USACO 18Jan Gold] Moo Tube的主要内容,如果未能解决你的问题,请参考以下文章
[BZOJ1679][Usaco2005 Jan]Moo Volume 牛的呼声
[BZOJ] 1679: [Usaco2005 Jan]Moo Volume 牛的呼声
BZOJ 1679 [Usaco2005 Jan]Moo Volume 牛的呼声