[bzoj1103][poi2007]大都市meg(DFS序)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1103
分析:
处理树的问题如果有边权,一般转化成点权,然后问题就等价于:
给你一个初始每个点的点权都为1的树,有2种操作:
1、将一个点的点权变为0
2、询问从根(1)到某个节点的路径上的所有点的点权和
如果某个点的点权边为了0,那么说明以这个点为根的子树所有的点到树根的点权和都将-1,这很容易想到树链剖分里的思想,即把树上的每个点对应到一个数组的每个位置上,用线段树处理。又注意以某个点为根的子树在DFS序中是连在一起的,所以可以先求出整个树的DFS序。
那么问题就转化为了,给你一个数组,有如下操作:
1、将一段数字-1
2、求某个位置数字的值
这就是典型的BIT了……