CF1815A Ian and Array Sorting 題解

心海秋的墨木仄發表於2024-04-10

題面

直接進入主題吧。

思路

題目要求非遞減序列,很明顯,由題目給的操作,一定可以將這個序列的前 \(n - 1\) 項能夠滿足是非遞減序列,最後只需要比較第 \(n\) 項是否大於等於第 \(n - 1\) 項即可。

解釋一下為什麼。對於序列 \(a\),從 \(a_1\) 開始到 \(a_{n-1}\) 結束,每次對 \(a_i\)\(a_{i+1}\) 進行操作使得 \(a_i\)\(a_{i-1}\) 剛好大 \(1\) 或者相等,很明顯這是可以做到的。由此可以將前 \(n-1\) 項變得符合題意的。

此時你會驚訝的發現這樣連樣例都過不了,仔細看會發現當 \(n\) 為奇數時程式就會輸出 \(\texttt{No}\)。手推幾個資料後,發現如果最後 \(a_{n-1}>a_n\),可以將前 \(n-1\) 項全部減去一個極小值來達成非遞減序列。說人話就是當 \(n\) 為奇數時直接輸出 \(\texttt{YeS}\)

相關文章