题意
$n$个人,每个人属于一个班级$ci$,这些人会有些小团体(并查集)
两种操作:
- $1$ $a$ $b$,将$a$所在的集体和$b$所在的集体合并
- $2$ $x$ $y$,问在$x$的集体中有多少人在$y$班
分析
看$1$操作是并查集,每一个人一开始有一个权值,如果两个集体合并,那么需要将他们的权值合并
看上去就像是线段树合并(前段时间刚学的)
一开始所有人都有一个根,对于他们的班级权值为1
对于1操作,找到a和b的祖先节点,合并两者的线段树,并进行并查集合并
对于2操作,查询即可
数组要开大点,反正有1024MB
1 |
|