1. 程式人生 > >今日份水題2018.11.7

今日份水題2018.11.7

其實是昨日份水題

洛谷P3398 複習一下樹上倍增求LCA,判斷兩條路徑a~b,c~d是否有交集。有交集當且僅當一方的LCA在另一方的路徑上。先求兩個LCA,然後將深度較大的那個LCA和另外一組的兩個端點求一組新的LCA,如果新的LCA都不與深度較小的LCA重合,則無交集。

SDOI2011消耗戰 第一道虛樹,虛樹的應用場景是查詢的節點總數不大但是無關節點特別多。先考慮dp:一個點所有子節點想和根節點斷掉,要麼斷掉它與所有子樹的聯絡,要麼斷掉它與根節點的路徑上代價最小的一條邊。於是產生了很多無關節點。使用虛樹把它們排除。對每次查詢都重新建立一棵虛樹。