T1
NFLSOJ P14050 送外賣
考慮每個雙向邊連通塊構成一張 DAG,可以想到按照拓撲序擴充套件每個雙向邊連通塊,在連通塊內 dijkstra,然後更新所有該連通塊的後繼連通塊。拓撲套 dijkstra。
T2
NFLSOJ P14051 旅行
列舉在哪個點結束,考慮此時答案的變化。
T3
NFLSOJ P14052 門把手集合
異或按位獨立,考慮拆位,注意到貢獻裡出現了交叉項,於是列舉每兩位,考慮這兩位的交叉項對答案的貢獻。注意到我們此時已經不再注意每個數在其他位是什麼,這樣每個數只有四種可能性。我們統計每個點集合中四種可能性分別有幾種,其中能夠貢獻交叉項的是兩對可能性。隨便算一下就好了。
T4
NFLSOJ P14053 武裝直升機
\(f_i = \min\limits_j \{ \max \{ f_j, w(j, i) \} \}\),考慮拆開內層 \(\max\) 然後分討。注意到 \(w(j, i)\) 在 \(j\) 單調變化時單調變化,因此 \(f\) 的轉移點也必是單調變化。這樣兩個東西都是單調的,轉移點就只可以在兩條折線交點的兩側。又注意到一條折線單調上移,另一條單調上移,因此交點也單調移動,使用單調佇列維護即可。