树状数组 DFS序
BZOJ题目传送门
洛谷题目传送门
刚开始连完边后DFS一遍求出它们的DFS序。对于每个节点在它的左端点+1,右端点-1。这样询问就转化成了区间和(题目保证编号大的在编号小的下面)。
修成公路的话把编号大的还原(左端点-1,右端点+1)即可。树状数组维护。
代码:
#include<cctype>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 250005
#define F inline
using namespace std;