題意
給定兩個序列 \(A, B\),保證 \(A\) 單調不升,\(B\) 單調不降。
兩人依次從兩個序列頭取走數字,她們希望自己的數字最大,求兩人最終取走的數字之差。
\(n, m \le 10 ^ 6\)
Sol
注意到當 \(n \bmod2 = 0, m \bmod 2 = 0\) 時,先手一定取走所有下標為奇數的位置,後手一定取走所有下標為偶數的位置。
考慮從這個形態上擴充一下,先欽定兩人的操作是先一個一個接著選序列 \(A\),然後再選序列 \(B\),可以發現其實對於 \(A\) 來說,若先選 \(B\) 而沒有選到 \(A\) 的奇數下標的話,這樣是十分劣的。
考慮先手或後手在交替選擇 \(A\) 的數列的過程,發現其實每人是有兩種選擇的,可以選擇繼續選擇 \(A\),也可以選擇直接選走 \(B\) 的開頭,顯然若 \(m\) 為偶數,另一方可以透過不斷的跟選 \(B\) 序列,使得當前方不能交換交替選擇 \(A\) 的順序而且只能選到 \(B\) 的所有奇數位導致更劣,因此當 \(m\) 為偶數時,兩人還是交替選擇。
考慮 \(m\) 為奇數的情況,發現直接變成交換先後手,\(m\) 為偶數的情況。
做法很顯然了,列舉兩人第一次選到 \(B\) 序列的位置,從後往前更新答案即可。