HDU 5029 Relief grain(樹鏈剖分)
題目鏈接~~>
做題感悟:這題真的很巧妙,分析了一下午才分析懂其中的奧妙,感覺收獲很大。
解題思路:
首先需要樹鏈剖分一下,把樹剖分成鏈。然後的思想和HDU 5044 差不多,只不過這個不用數組遍歷,而是用線段樹代替數組。如果你在[ a ,b ] 區間染色,則可以讓 a 節點加上這種顏色,讓 b + 1 減去這種顏色,這樣最後遍歷一下數組就可以了,但是這題每個節點可以染許多顏色,所以不可以和數組一樣只遍歷一次,我們可以把那些點弄到線段樹上,這樣只需要在線段樹上更新點就可以了 ,每一次得到的顏色一定是線段樹根節點的顏色。
代碼:
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include