洛谷傳送門
給定一棵 nn 個節點的無根樹,共有 mm 個操作,操作分為兩種:
將節點 aa 到節點 bb 的路徑上的所有點(包括 aa 和 bb)都染成顏色 cc。
詢問節點 aa 到節點 bb 的路徑上的顏色段數量。
顏色段的定義是極長的連續相同顏色被認為是一段。例如112221
由三段組成:11
、222
、1
。
輸入的第一行是用空格隔開的兩個整數,分別代表樹的節點個數 nn 和操作個數 mm。
第二行有 nn 個用空格隔開的整數,第 ii 個整數 w_iw**i 代表結點 ii 的初始顏色。
第 33 到第 (n + 1)(n+1) 行,每行兩個用空格隔開的整數 u, vu,v,代表樹上存在一條鏈結節點 uu 和節點 vv 的邊。
第 (n + 2)(n+2) 到第 (n + m + 1)(n+m+1) 行,每行描述乙個操作,其格式為:
每行首先有乙個字元 opo**p,代表本次操作的型別。
對於每次查詢操作,輸出一行乙個整數代表答案。
精髓在於線段樹維護顏色塊。
可以參考小白逛公園的維護方式,在維護答案的同時維護區間左右端點的顏色。顯然的是,在區間合併的時候,如果左兒子的右端點顏色等於右兒子的左端點顏色,那麼就需要把答案-1.
就這麼維護就好了。
洛谷P2486 SDOI2011 染色
輸入格式 輸出格式 對於每個詢問操作,輸出一行答案。輸入樣例 1 6 5 2 2 1 2 1 1 1 21 3 2 42 5 2 6q 3 5 c 2 1 1 q 3 5 c 5 1 2 q 3 5 輸出樣例 1 典型的樹鏈剖分 線段樹,線段樹維護 區間左右端點顏色 和 區間顏色數。注意 當 上傳或...
題解 P2486 SDOI2011 染色
對於剛學樹剖的同學比如我這種大大大蒟蒻來說,做這題會給你帶來很大的提公升 不僅可以對樹剖有更深刻的理解,還可以更好的理解線段樹,所以這是一道好題哦 為了更好懂,我一點一點說說思路吧 首先這題題意不難懂,只有兩個操作 區間顏色修改和區間查詢顏色數量,我們分開來看 這是這題的難點,弄懂了以後可以對線段樹...
洛谷P2484 SDOI2011 打地鼠
打地鼠是這樣的乙個遊戲 地面上有一些地鼠洞,地鼠們會不時從洞裡探出頭來很短時間後又縮回洞中。玩家的目標是在地鼠伸出頭時,用錘子砸其頭部,砸到的地鼠越多分數也就越高。遊戲中的錘子每次只能打乙隻地鼠,如果多隻地鼠同時探出頭,玩家只能通過多次揮舞錘子的方式打掉所有的地鼠。你認為這錘子太沒用了,所以你改裝了...