APCS 2021-09 題解

💡Hint:程式碼省略最前面巨集部分,可以在 About 頁面找到。
p1. 七言對聯
Solution
乖乖照條件一個一個判斷,寫迴圈反而會更麻煩。
AC code
1 | signed main() { |
p2. 魔王迷宮
Solution
也是一個有趣的模擬題,注意不能把魔王跟炸彈直接抵銷,因為一個炸彈可能會炸到很多個魔王。
AC code
1 | struct Player { |
p3. 幸運數字
Solution
遞迴的部分很簡單,難點是要找區間最小值。原本第一個想法是稀疏表或其他支援區間最值的結構(例如線段樹或 BIT),但後來發現區間只會越縮越小,區間外的最小值不會再使用到,可以直接丟掉。所以直接紀錄一個 index 陣列,以原陣列遞增排序,發現不在區間內就可以丟掉換下一個當最小值。剩下的部分就很簡單了,時間複雜度
AC code
1 | signed main() { |
p4. 美食博覽會
Solution
先預處理一個陣列
其中
AC code
1 | int n, k, a[MN], dp[25][MN]; |
- 標題: APCS 2021-09 題解
- 作者: HyperSoWeak
- 撰寫于 : 2025-01-03 03:26:41
- 更新于 : 2025-01-03 03:26:41
- 連結: https://hypersoweak.github.io/blog/apcs/apcs-2021-09/
- 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。