Apple Tree
Time Limit: 2000MS   Memory Limit: 65536K
Total Submissions: 27092   Accepted: 8033

Description

There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the big apple tree.

The tree has N forks which are connected by branches. Kaka numbers the forks by 1 to N and the root is always numbered by 1. Apples will grow on the forks and two apple won't grow on the same fork. kaka wants to know how many apples are there in a sub-tree, for his study of the produce ability of the apple tree.

The trouble is that a new apple may grow on an empty fork some time and kaka may pick an apple from the tree for his dessert. Can you help kaka?

Input

The first line contains an integer N (N ≤ 100,000) , which is the number of the forks in the tree.
The following N - 1 lines each contain two integers u and v, which means fork u and fork v are connected by a branch.
The next line contains an integer M (M ≤ 100,000).
The following M lines each contain a message which is either
"C x" which means the existence of the apple on fork x has been changed. i.e. if there is an apple on the fork, then Kaka pick it; otherwise a new apple has grown on the empty fork.
or
"Q x" which means an inquiry for the number of apples in the sub-tree above the fork x, including the apple (if exists) on the fork x
Note the tree is full of apples at the beginning

Output

For every inquiry, output the correspond answer per line.

Sample Input

3
1 2
1 3
3
Q 1
C 2
Q 1

Sample Output

3
2

Source

POJ Monthly--2007.08.05, Huang, Jinsong
题意:
一棵苹果树,每个节点最多结一个苹果,最初每个节点都有一个苹果,非二叉树,有两种操作,Q X,表示X节点的子树共有几个苹果,C X,表示X节点摘掉一个苹果或长出一个苹果(有就摘,没有就长)
aaarticlea/jpeg;base64,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" alt="" />
代码:

 /*
挺好的一道题,本题要重新建立树状数组,用dfs从树根开始搜,每搜到一个点他的左值记录该点的新序号,他的
右值记录改点的子树中的最大深度,这样每个点就变成了树状数组中的C数组参考上图,然后套树状数组区间求和的模板就行了。
注意本题如果用vector会很费时,vector<int>a[MAX]会超时,vector<vector<int> > a(MAX) 985ms过了(后面这个什么鬼!)。
不如自己建树用时会更少。
*/
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int MAX=;
int c[MAX];
int lef[MAX],rig[MAX];
int n,m;
int rot;
int head[MAX];
int lne;
//vector<int>a[MAX];
//vector<vector<int> > a(MAX);
struct node
{
int to,next;
}a[MAX];
void tadd(int u,int v)
{
a[lne].to=v;
a[lne].next=head[u];
head[u]=lne++;
}
int lowbit(int x)
{
return x&(-x);
}
void add(int id,int val)
{
while(id<=n)
{
c[id]+=val;
id+=lowbit(id);
}
}
int sum(int id)
{
int sum=;
while(id>)
{
sum+=c[id];
id-=lowbit(id);
}
return sum;
}
void dfs(int x)
{
lef[x]=rot;
//for(int i=0;i<a[x].size();i++)
for(int i=head[x];i!=-;i=a[i].next)
{
rot++;
//dfs(a[x][i]);
dfs(a[i].to);
}
rig[x]=rot;
}
int main()
{
int x,y;
char ch[];
int flag[MAX];
scanf("%d",&n);
for(int i=;i<=n;i++)
{
flag[i]=;
add(i,);
}
lne=;
memset(head,-,sizeof(head));
for(int i=;i<n;i++)
{
scanf("%d%d",&x,&y);
//a[x].push_back(y);
tadd(x,y);
}
rot=;
dfs();
scanf("%d",&m);
while(m--)
{
scanf("%s%d",ch,&x);
if(ch[]=='C')
{
if(flag[lef[x]])
add(lef[x],-);
else add(lef[x],);
flag[lef[x]]=!flag[lef[x]];
}
else
{
printf("%d\n",sum(rig[x])-sum(lef[x]-));
}
}
return ;
}

POJ 3321 树状数组(+dfs+重新建树)的更多相关文章

  1. poj 3321(树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 24954   Accepted: 7447 Descr ...

  2. 【BZOJ】2434: [Noi2011]阿狸的打字机 AC自动机+树状数组+DFS序

    [题意]阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母. 经阿狸研究发现,这个打字机是这样工作的: l 输入小写 ...

  3. POJ 3321 Apple Tree (树状数组+dfs序)

    题目链接:http://poj.org/problem?id=3321 给你n个点,n-1条边,1为根节点.给你m条操作,C操作是将x点变反(1变0,0变1),Q操作是询问x节点以及它子树的值之和.初 ...

  4. POJ 3321 Apple Tree 树状数组+DFS

    题意:一棵苹果树有n个结点,编号从1到n,根结点永远是1.该树有n-1条树枝,每条树枝连接两个结点.已知苹果只会结在树的结点处,而且每个结点最多只能结1个苹果.初始时每个结点处都有1个苹果.树的主人接 ...

  5. BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]

    2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2545  Solved: 1419[Submit][Sta ...

  6. 【BZOJ-3881】Divljak AC自动机fail树 + 树链剖分+ 树状数组 + DFS序

    3881: [Coci2015]Divljak Time Limit: 20 Sec  Memory Limit: 768 MBSubmit: 508  Solved: 158[Submit][Sta ...

  7. 【BZOJ-1103】大都市meg 树状数组 + DFS序

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2009  Solved: 1056[Submit][Sta ...

  8. POJ 2352Stars 树状数组

    Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 42898   Accepted: 18664 Descripti ...

  9. BZOJ 1103 [POI2007]大都市meg(树状数组+dfs序)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1103 [题目大意] 给出一棵树,每条边的经过代价为1,现在告诉你有些路不需要代价了, ...

随机推荐

  1. 创建对象为什么要 init?

    self 为什么要赋值为[super init]:”,当程序进入到init这个方法的时候,系统已经生成了对象并分配了存储空间,在调用[super init]是为了初始化父类对象,在父类对象初始化过程序 ...

  2. Android中常用的五种数据存储方式

    第一种: 使用SharedPreferences存储数据 适用范围: 保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小 ...

  3. PopupWindow响应返回键的问题

    假设情景是这样的:在一个Activity中弹出一个PopupWindow,要求在按返回键时关闭该PopupWindow. 如果该PopupWindow是无焦点的(默认情况),那么可以在Activity ...

  4. LoadRunner下载文件脚本

    LoadRunner下载文件脚本  在看普泽关于pezybase的测试报告的时候,发现里面有用到jmeter(http协议)并发测试下载文件,考虑到后面可能需要在公司pezybase的并发下载,把之前 ...

  5. LoadRunner中截取字符串

    LoadRunner中截取字符串 /*strchr和strrchr的区别*/ char *strTest1="citms citms"; char *strTest2,*strTe ...

  6. hdu 1024 Max Sum Plus Plus

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  7. NDK各版本下载

    含r8e,r9d,r10c 其中x86_64代表64位系统 官网上只有最新版下载链接,如果想要下载以前的版本,可打开 https://archive.org/web/ 然后输入 http://deve ...

  8. Codeforces Round #375 (Div. 2) - D

    题目链接:http://codeforces.com/contest/723/problem/D 题意:给定n*m小大的字符矩阵.'*'表示陆地,'.'表示水域.然后湖的定义是:如果水域完全被陆地包围 ...

  9. Swift3.0语言教程使用路径字符串

    Swift3.0语言教程使用路径字符串 Swift3.0语言教程使用路径字符串,路径其实是字符串的一种,我们称为路径字符串.本小节将讲解如何使用路径字符串. 1.组合路径 开发者可以将数组快速的组合成 ...

  10. JS实现有点炫的图片展示效果-图片解体和组合

    经过4个月的努力学习,迎来了进入市场的最后一个学习项目.自己模仿了一个图片展示效果,用在了项目中,感觉挺炫的.在这里分享一下,希望大家喜欢~! bomb-showImg : 在线演示http://ru ...