太菜了導致的
ARC181
A - Sort Left and Right
惡臭結論+分討。
- 當已經是升序陣列時,答案顯然為 \(0\)。
- 當存在一個點 \(i\) 滿足 \(a_i=i\) 且對於所有的 \(j<i\) 都滿足 \(a_j<a_i\),顯然可以以 \(i\) 為劃分點,答案為 \(1\)。
- 對於普遍情況,我們可以讓值 \(1\) 到位置 \(1\)(或值 \(n\) 到位置 \(n\)),然後以 \(1\) 或 \(n\) 為劃分點進行操作,答案為 \(2\)。
- 考慮特殊情況,當 \(a_1=n,a_n=1\) 時,我們需要先隨意選擇一個位置進行排序,使其成為上述第三種情況,答案為 \(3\)。
B - Annoying String Problem
首先先特判掉一些比較顯然的可行/不可行的方案。
對於普遍情況,我們求出我們所需要的字串 \(T\) 的長度,並暴力判斷 \(S\) 中是否有長度為 \(T\) 的迴圈節。
詳見 Code
C - Row and Column Order
瞎搞結論題。
在 \(P_1\) 行內全部放 0
,在 \(Q_n\) 列中所有仍為空的地方填上 1
,然後遞迴處理剩下的 \((n-1)\times (n-1)\) 的方陣。
CF1993
A. Question Marks
按題意模擬即可。
B. Parity and Sum
不難發現最後一定要使整個陣列變成全為奇數,分別考慮最大的奇數和最大的偶數直接的關係。
-
當奇數更大時
對於每個偶數我們都可以用最大的奇數將其更新為奇數,答案為偶數的個數。
-
當偶數更大時
我們最終的奇數值為當前的奇數值加上前面所有的偶數值,如果仍小於的話,答案就是偶數數量 \(+1\),否則就是偶數的數量。
C. Light Switches
【被催著睡覺了,咕一下】