并查集
moyangxian
总会过去的
展开
-
食物链(并查集)
题目: 食物链 代码来自AcWing #include <iostream> using namespace std; const int N = 50010; int n, m; int p[N], d[N]; int find(int x) { if (p[x] != x) { int t = find(p[x]); d[x]...原创 2020-04-02 16:43:16 · 67 阅读 · 0 评论 -
连通块中点的数量(并查集)
题目: 连通块中点的数量 给定一个包含n个点(编号为1~n)的无向图,初始时图中没有边。 现在要进行m个操作,操作共有三种: “C a b”,在点a和点b之间连一条边,a和b可能相等; “Q1 a b”,询问点a和点b是否在同一个连通块中,a和b可能相等; “Q2 a”,询问点a所在连通块中点的数量; 输入格式 第一行输入整数n和m。 接下来m行,每行包含一个操作指令,指令为“C a b”,“Q1...原创 2020-04-02 13:19:24 · 256 阅读 · 0 评论 -
并查集
模板 模板来自AcWing (1)朴素并查集: int p[N]; //存储每个点的祖宗节点 // 返回x的祖宗节点 int find(int x) { if (p[x] != x) p[x] = find(p[x]); return p[x]; } // 初始化,假定节点编号是1~n for (int ...原创 2020-04-02 12:57:54 · 62 阅读 · 0 评论