ac 梦幻布丁 启发式合并
生活随笔
收集整理的這篇文章主要介紹了
ac 梦幻布丁 启发式合并
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:中文題。
對于每種顏色,我們都可以看成一個集合。讓后把一種顏色變成另一種顏色就轉換成了把兩個集合的合并問題。顯然我們有一個復雜度為O(NlogN)O(NlogN)O(NlogN)的啟發式合并能完美的解決這個問題。
解決合并問題了,現在需要解決如何在合并的時候更新答案呢?顯然如果我們將一段連續的顏色改成另一種顏色將有三種情況,總段數可能不變,可能減一,可能減二。而如果答案要減的時候,我們只需要看一下當前數前后兩個數是否為要變成的顏色,是的話就需要分情況減了。
還有個小問題,就是我們需要將集合大小小的合并到大的,這樣就會產生一些小問題,比如我們小的集合是要變成的顏色。要解決也比較容易,可以開一個數組P,來映射每種顏色,如果出現上述情況的話直接交換映射的值即可。
總結
以上是生活随笔為你收集整理的ac 梦幻布丁 启发式合并的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hills And Valleys Co
- 下一篇: 焦三仙的功效与作用、禁忌和食用方法