bzoj 1103 POI2007 大都市meg
2016-10-15 10:55
225 查看
这个题的题面 好难懂。。
好吧,这题放了它好几天了
树剖应该也可以吧?
但是细想想就发现修改一个点只会影响它的子树,所以我们用dfs序来搞定它,用进栈时间和出栈时间搞定它
然后树状数组搞一下。
感觉区间+1-1很妙啊。
今天大学节想去的地方好难考
好吧,这题放了它好几天了
树剖应该也可以吧?
但是细想想就发现修改一个点只会影响它的子树,所以我们用dfs序来搞定它,用进栈时间和出栈时间搞定它
然后树状数组搞一下。
感觉区间+1-1很妙啊。
今天大学节想去的地方好难考
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; //by mars_ch int in[250005],out[250005],line[250005]; int l[250005]; int c[25000005]; int n,dfn,tot; struct data { int f,t,nxt; }e[250005*5]; int first[250005]; void add(int a,int b) { e[tot].f=a; e[tot].t=b; e[tot].nxt=first[a]; first[a]=tot++; } void dfs(int x,int f) { in[++dfn]=x; line[x]=dfn; for(int i=first[x];i!=-1;i=e[i].nxt) { int v=e[i].t; if(v==f) continue; l[v]=l[x]+1; dfs(v,x); } out[x]=dfn+1; } int lowbit(int x) { return x&(-x); } void updata(int x,int y) { while(x<=dfn) { c[x]+=y; x+=lowbit(x); } } int getsum(int x) { int res=0; while(x) { res+=c[x]; x-=lowbit(x); } return res; } int main() { scanf("%d",&n); memset(first,-1,sizeof(first)); for(int i=1;i<n;i++) { int a,b; scanf("%d%d",&a,&b); add(a,b); add(b,a); } dfs(1,0); for(int i=1;i<=n;i++) { printf("%d %d\n",line[i],out[i]); } int m; scanf("%d",&m); int t=n+m-1; while(t--) { char op[5]; scanf("%s",op); if(op[0] == 'A') { int x,y; scanf("%d%d",&x,&y); updata(line[y],1),updata(out[y],-1); } else { int x; scanf("%d",&x); printf("%d\n",l[x]-getsum(line[x])); } } return 0; }
相关文章推荐
- bzoj1103【POI2007】大都市meg
- [BZOJ]1103: [POI2007]大都市meg
- BZOJ1103: [POI2007]大都市meg
- BZOJ 1103: [POI2007]大都市meg
- 【POI2007】【Bzoj 1103】大都市meg
- 8.3 bzoj1103 [POI2007]大都市meg
- bzoj1103 POI2007 大都市meg
- [bzoj1103][poi2007]大都市meg(DFS序)
- BZOJ 1103: [POI2007]大都市meg(dfs序,树状数组)
- BZOJ1103 [POI2007]大都市meg 【树剖】
- [BZOJ1103][POI2007]大都市meg(dfs序+树状数组)
- [BZOJ1103][POI2007]大都市meg(dfs序+bit||链剖)
- BZOJ1103 [POI2007]大都市meg 【树剖】
- [Bzoj1103][POI2007]大都市meg (dfs序+ 树状数组)
- 【bzoj1103】【POI2007】【大都市】【meg】【人工栈】
- 【BZOJ 1103】 [POI2007]大都市meg
- [BZOJ1103][POI2007]大都市meg(树状数组维护树上差分)
- BZOJ 1103: [POI2007]大都市meg 差分+树状数组
- BZOJ 1103 [POI2007]大都市meg(树状数组+dfs序)
- 【BZOJ1103】[POI2007]大都市meg