问题2282--苹果树(POJ3321)

2282: 苹果树(POJ3321)

时间限制: 1 Sec  内存限制: 128 MB
提交: 7  解决: 7
[提交] [状态] [讨论版] [命题人:]

题目描述

给定一棵有n个结点的苹果树,每个结点开始有一个苹果,对这个树执行m次操作:
(1)修改:修改时,如果这一结点有苹果则改为无苹果,否则将这结点改为有苹果。
(2)查询:查询某一个结点为根的子树上有多少个苹果。
注意:苹果只能长在结点上,并且不会有两个苹果长在同一个结点上。1号结点为根结点。


输入

第1行:1个整数n,表示这棵苹果树有n个结点。
以下n-1行:每行包含2个用空格隔开的整数u和v,表示u,v两结点间有树枝相连。
第n+1行:1个整数m,表示有m个修改或查询操作。
以下m行:每行包含1个字符(‘C’或‘Q’)和1个整数x。‘C’表示将x结点处的苹果有无情况取反。‘Q’表示询问以x为根结点的子树中苹果的个数。
注意:苹果树开始时是长满苹果的。

输出

对于每1个询问输出1行,每行包含1个整数,表示苹果数。

样例输入 Copy

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

样例输出 Copy

3
2

提示

【数据规模】
n≤105,m≤105

来源/分类