APCS 2020-10 題解

💡Hint:程式碼省略最前面巨集部分,可以在 About 頁面找到。
p1. 人力分配
Solution
直接枚舉工廠一員工數量
AC code
1 | int f(int a, int b, int c, int x) { |
p2. 人口遷移
Solution
就…直接模擬,注意人口遷移的時候不能直接在同一個陣列上面做,先把每個城市移入移出人數都算好再一起加回原本陣列就好。時間複雜度
AC code
1 | int r, c, k, m; |
p3. 勇者修煉
Solution
如果只能往右下移動的話就變成簡單的 dp 了,只要從左邊跟上面選大的,再加上這格的經驗值就是這格的答案。利用這個想法,因為不能重複走,所以可以把往右下移動跟左下移動分開算,並在由上往下轉移的時候從這兩種選較大的就好。具體轉移式如下
AC code
1 | int m, n, a[55][MN]; |
p4. 低地距離
Solution 1
把陣列的數字分成
AC code
1 | int solve(vector<int> a) { |
Solution 2
可以從小數字的開始往上算,並維護一個陣列
1 | struct Fenwick { |
- 標題: APCS 2020-10 題解
- 作者: HyperSoWeak
- 撰寫于 : 2024-10-20 14:23:21
- 更新于 : 2024-10-20 14:23:21
- 連結: https://hypersoweak.github.io/blog/apcs/apcs-2020-10/
- 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。