A. Ilya and Bank Account
給定整數 n(可為負),可刪除最後一位或倒數第二位數字(或不刪),求最大結果。正數直接輸出;負數比較刪除最後一位與倒數第二位後的值。
B. Ilya and Queries
字串 s 由 . 和 # 組成,查詢區間 [l, r] 內相鄰相同字符對數。預處理前綴和 cnt[i] 表示 [1, i] 內相鄰相同對數,答案為 cnt[r] - cnt[l]。
C. Ilya and Matrix
給 4^n 個數填入 2^n × 2^n 矩陣,美麗值定義為遞歸取子矩陣最大值之和。從大到小排序,計算前綴和,每次除以 4 累加即可。
D. Ilya and Roads
n 個洞,m 個區間修補方案(費用 c),需至少修補 k 個洞,重複修補費用累加。區間 DP:dp[i][j] 前 i 個洞修 j 個最小費用,預處理 p[l][r] 為區間最小費用,轉移 dp[i][j] = min(dp[i-1][j], dp[i-k][j-k] + p[i-k+1][i])。
E. Ilya and Two Numbers
兩個 m 進制數(各 n 位),可重排各自數字,逐位相加模 m,求結果字典序最大。計數各數字出現次數,貪心從高位到低位匹配:對於數字 i,優先找 m-i-1,否則找小於它的最大可用數字。用棧/隊列維護。
完整代碼見原文,此處略。