[2020多校A层12.1]树(倍增/单调栈/dfs栈)
生活随笔
收集整理的這篇文章主要介紹了
[2020多校A层12.1]树(倍增/单调栈/dfs栈)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
[2020多校A層12.1]樹(shù)
求解樹(shù)上從u到v的最長(zhǎng)貪心上升序列,也就是只要有比它大的就選擇它,可以發(fā)現(xiàn)這個(gè)問(wèn)題性質(zhì),就是每個(gè)點(diǎn)對(duì)應(yīng)了唯一的一個(gè)第一個(gè)比它大的點(diǎn),那么我們可以向它們之間連邊,然后問(wèn)題就轉(zhuǎn)化為求解從當(dāng)前點(diǎn)上面的鏈中第一個(gè)大于c的位置和第一個(gè)深度小于dep[v]的位置。然后樹(shù)上倍增維護(hù)即可。
另外我們也可以用單調(diào)棧直接處理,將詢問(wèn)離線,然后維護(hù)當(dāng)前點(diǎn)向根這條鏈的單調(diào)棧,然后二分對(duì)應(yīng)位置即可。然后對(duì)于回溯需要存儲(chǔ)下來(lái)彈掉的元素,然后回溯時(shí)要加回去。
總結(jié)
以上是生活随笔為你收集整理的[2020多校A层12.1]树(倍增/单调栈/dfs栈)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 倏怎么读 倏的拼音是什么
- 下一篇: [2020多校A层12.3]虚构推理(语