建立操作树,即1和3操作时i-1向i连边,2操作中k向i连边,然后dfs一遍 那么当我们走到一个节点,就执行该操作(修改也是操作),退出后取消该操作即可 于是相当于要维护一个东西,支持:1.加边:2.删边:3.询问联通块的第k小 容易想到按秩合并并查集,考虑询问操作:用分块,维护每一个权值块的权值数量(要离散) 然后就可以确定答案所在权值块,再依次枚举里面的权值并判断是否在联通块内即可 1 #include<bits/stdc++.h> 2 using namespace std; 3 #de…