题目链接~~>
做题感悟:这题真的很巧妙,分析了一下午才分析懂其中的奥妙,感觉收获很大。
解题思路:
首先需要树链剖分一下,把树剖分成链。然后的思想和HDU 5044 差不多,只不过这个不用数组遍历,而是用线段树代替数组。如果你在[ a ,b ] 区间染色,则可以让 a 节点加上这种颜色,让 b + 1 减去这种颜色,这样最后遍历一下数组就可以了,但是这题每个节点可以染许多颜色,所以不可以和数组一样只遍历一次,我们可以把那些点弄到线段树上,这样只需要在线段树上更新点就可以了 ,每一次得到的颜色一定是线段树根节点的颜色。
代码:
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include