A. Number
假設\(n_i\)為十進制數\(n\)的第\(i\)位上的數字,那么\(\max_{i}n_i\)即為答案。
B. Mod
用BFS的方法計算可以以\(O(p)\)的復雜度出\(x\)到\(i(0 \le i < p)\)的最少步數, 記該步數位\(cost(x, i)\)。
分別對\(n\)和\(m\)執行上述步驟,然后枚舉\(i(0 \le p < p)\),\(cost(n, i)+cost(m,i)\)的最小值即為答案。
C. Game
\(n=1\)時特判。
\(n\)為奇數時,最后一步由后手方操作。所以,不論最后一步剩余的兩個數字是什么,后手方都能造出一個偶數,所以\(n\)為奇數時后手必勝。
后續僅需討論\(n\)為偶數的情況。\(n\)為偶數時最后一步由先手方操作。
如果初始數列至少有兩個偶數,那么每次后手方操作完數列至少保留2個偶數。因為先手方最優的操作就是刪去1個0,而后手方總能耗費任意兩個數造出一個偶數。所以最后一步時數列由兩個偶數組成,此時后手必勝。
反之,在后手操作完之后先手總能將新造的0刪去,所以數列中不會有超過初始值的偶數,所以先手方操作最后一步的時候至多有1個0。此時先手必勝。
D. String
- I: trie插入
- D: trie刪除
- Q: trie查詢
- U: 每次暴力將兩顆子樹合並。
看了評論區,終於搞懂了為什么這樣整能過。nb網友這么多的么。