摘要: 题意:一棵树,有很多分叉,每个分叉上最多有1个苹果。 给出n,接下来n-1行,每行u,v,表示分叉u,v之间有树枝相连。这里数据中u相当于树中的父节点,v相当于子节点。 给出两个操作: 1.C x 如果分叉x有一个苹果,表示该苹果被摘下;如果没苹果,表示该分叉长出1个苹果。 2.Q x 查询以分叉x为根节点的子树中所含有的苹果,包括分叉x。思路:用树的后根遍历将树转化成一个序列,然后用树状数组维护。 树的后根遍历(先遍历每棵子树,再遍历根节点)实质上是按照自下而上、从左至右的顺序将非线性结构的树转化为一个线性序列。 每棵子树对应这个线性序列的一个连续的子区间,这样就可以用... 阅读全文
posted @ 2013-10-01 16:05 辰曦~文若 阅读(327) 评论(0) 推荐(0)