T1
我的做法:
-
合併 -> 並查集。類似建 Kruskal 重構樹。詢問跑 LCA。
-
注意並查集合並要把兩個根都變成一個新點的兒子,而不是把一個作為另一個的兒子。(可能類似建 [邊](?) Kruskal 重構樹)
-
要特判詢問時 \(x = y\) 的情況(好像是輸出 \(0\))。
lzh 的做法:
-
連出一棵樹,邊的邊權是 它是第幾條邊。每次詢問問的是一條鏈上的 \(\max\)。用樹剖做。
-
其實也可以建這棵樹的 Kruskal 重構樹([邊](?))來做。這個重構樹好像就是我的做法裡建出來的樹。
xwb 的做法:
對操作(加邊)分塊(塊長是根號)。
記一下[每個塊結尾處](???)的 fa 陣列(前面的邊都加上時)。透過這個找每個詢問的答案是在哪個塊裡的。
對每個塊裡的詢問一起處理。在每個塊裡暴力走,每走一步暴力對這個塊裡的所有詢問判是否可行即可。
題解的
咕咕咕。