最近都是各种校内模拟赛,好久没写题解了。题意题解用线段树维护列,每个线段树记录这个区间内:最左边一列每个方块所属的集合最右边所属的集合四联通颜色块个数,即答案合并时对中间两列遍历所有行,如果两块颜色相同就用并查集把两个集合给合并起来,并将答案 $-1$ 。#include<bits/stdc++.h>
#define fi first
#define se second
#def...
双倍经验:洛谷2195 HXY造公园题意给出一个有 $n(\le 3\times 10^5)$ 个点 $m(\le 3\times 10^5)$ 条边的森林。要求支持两种操作:求 $x$ 所在树的直径将 $x,y$ 所在的树合并,要求合并后树的直径最小题解合并可以用并查集来实现,用 $ans[x]$ 表示 $x$ 子树中的直径长度。对于操作 $1$ ,直接输出 $ans[x]$ 。对于操作 ...