图------并查集
并查集题
蒋卫升
这个作者很懒,什么都没留下…
展开
-
食物链 (带边权并查集)
题目链接 题意:中文题面,无过多客套话,就不说了 思路:参考:https://blog.csdn.net/ccsu_cat/article/details/78089233 把父节点与子节点的关系用向量表示,一共有三种关系, 0代表同类;1代表被根节点吃;2代表吃根节点。 #include <cstdio> #include <iostream> #incl...原创 2020-01-14 18:42:24 · 171 阅读 · 0 评论 -
Werewolf (并查集)
题目链接 思路:首先这是一个最大出度为1的有向图。有两种不同的边,狼边和村民边。假设都是狼,这显然是成立的,那么必为村民的个数就为0。那么必为狼的个数呢?这题的关键突破口是,形成一个村民环,只有一条狼边,那么狼边指向的那个节点必为狼,所有指向铁狼的村民边也比为狼(分析如下)。其他情况必为狼的数目为0。 假设A为村民,因为村民不说谎,那么B,C,D为村民,D为村民得出A为狼,矛盾,所以A为狼。...原创 2020-01-12 11:36:06 · 284 阅读 · 0 评论 -
cf Path Queries(并查集 (基于size的合并))
题目链接 题意:给一带边权的树,给你m次查询,每次查询为qi,问有多少条路径,它的路上最大边权值小于等于qi。 比如说,当树这样给出,问当q为1时答案为多少。根据观察,我们可以得知,答案为3,分别时(1,2)(2,4)(1,4); 思路:最开始,把这棵树看成一个个离散的点,我们从边权小的开始合并,那么ans(qi)就等于把所有小于等于qi 的边都连接完后的总答案,而对于每一...原创 2019-09-05 09:02:55 · 298 阅读 · 0 评论 -
牛客 BC题(并查集)
题目链接 直接套模板 #include<bits/stdc++.h> using namespace std; int a[100005]; long long w[100005],f[100005]; int find(int x) { return x==f[x]?x:f[x]=find(f[x]); } int main() { int n,m; cin>&g...原创 2019-10-07 18:13:32 · 249 阅读 · 0 评论