支點切割 (APCS 2018-02 中高級)
2.0s 256M數列中每個正整數代表一個單位位置上的重量。切割一段 \([l,r]\) 時,只能選內部位置 \(p\) 作支點,使 \(|\sum_{i=l}^r(i-p)a_i|\) 最小;同值時選最左邊。取走支點並把左右兩段各自依相同方式繼續切割。第一刀深度為 \(1\),深度超過 \(K\) 或不足三個數的區段不切。求所有取走支點的重量總和。
輸入格式
第一行為 \(n,K\);第二行為 \(n\) 個重量。
限制
\(1\le n\le50000\);\(0\le K<30\);\(a_i\ge1\);\(\sum a_i\le10^9\)。
輸出格式
輸出取走的重量總和。
範例輸入 1
7 1
2 4 1 3 7 6 9
範例輸出 1
7
範例輸入 2
7 3
2 4 1 3 7 6 9
範例輸出 2
11
題目來源
APCS 2018 年 2 月實作題第 3 題。
題敘參考 ZeroJudge f638「支點切割」 整理,細節可能與正式試題有出入。
登入後即可撰寫程式並提交評測。
登入