ZeroJudge n688. pC. 卡牌遊戲
解題思路
- 必須使用 K 次魔法把正數變成負數、負數變成正數。
- 可對同個卡牌重複使用魔法。
- 必須用完 K 次魔法。
可以分為以下狀況:
- 負數數量大於 K:
從最小的負數開始轉換 K 次負數即可。 - 負數數量小於 K,且 K 減去負數數量為偶數:
將所有負數轉為正數,正數直接加總即可(使用偶數次魔法對數值無影響) - 負數數量小於 K,且 K 減去負數數量為奇數:
將所有負數轉為正數後,需判斷要讓哪個數字轉為負數。
負數中最大的數轉為正數後與最小的正數比大小。- 若後者較大,使前者轉負數
- 若前者較大,使後者轉負數
- 沒有負數,且 K 為偶數:
直接加總所有數字。 - 沒有負數,且 K 為基數:
將最小的數轉為負數後加總。
程式碼
Python
1 | # n688 AC |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 和泉小角落!
評論