题目:
分析:
圆方树板子题
建出圆方树后,直接树上差分即可
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define SF scanf
#define PF printf
#define MAXN 400010
using namespace std;
struct node{
int u,v;
node () {
}
node (int u1,int v1):u(u1),v(v1) {
}
}Edge[MAXN];
vector<int> a[MAXN];
int dfn[MAXN],low[MAXN],cnt;
int stk[MAXN],tp,n2,ncnt;
void dfs(int x,int fa=0){
dfn[x]=low[x]=++cnt;
stk[++tp]=x;
int flg=0;
for(int i=0;i<int(a[x].size());i++){
int u=a[x][i];
if(u&