Codeforces Round 960 (Div.2) 補題

起汐Yuics發表於2024-07-21

A

非常容易觀察到性質,注意 Alice 為先手,發現當 \(a_{\max}\) 的個數為奇數時顯然能 win,但如果 \(a_{\max}\) 的個數為偶數且有一個數具有奇數個可以作為跳板,那麼也能 win,否則就 lose。

B

結論:\(presum_x \geq 2 + presum_{y - 1} \geq 2 + \min{presum_i} \geq 1 + \max{presum_i}\),字尾和同理。

C

模擬一下容易發現每次操作後整個陣列都會向後移動。

我們首先對陣列進行一次操作模擬,發現整個陣列就變成單調不降的了。

之後我們開始觀察,對於一個連續的序列 \(a[l, r] = x (l \lt r, x \gt 0)\),在一次運算之後,得到一個新的限制 \(a[l + 1, \min{(r + 1, n)}] = x\) 成立,然後再給結論:如果陣列中所有非零連續段(出去最後一段)的長度都大於 \(1\),那麼陣列就遵循一個 “右移” 定律。

對於 “右移” 陣列,不難得到 \(b_i \lt b_{i + 1} \lt b_{i + 2}\),可以推斷出 \(b_i = a_i, b_{i + 1} = a_{i + 1}\),並且至少有 \(a_j = a_{i + 1}(j \leq i)\) 成立,這也就說明 \(a\) 並不是非單調遞減的,也就是說經過 \(2\) 次運算總能得到一個 “右移” 陣列。

D

相關文章