這題可以變成:
給你一個序列 𝑎1,𝑎2,…,𝑎𝑁 以及一個常數 𝐾,請你算出:在至多拔掉 𝐾 個元素的情況下,新序列的最大連續和的最大值。
最大連續和可以是一個空的序列,定義這樣子的連續和的值為 0。(抄自ncojp183題敘)
作法:可以觀察到對於每個點的最佳轉移點都有凸單調(定義cost(l , r)為[ l ,r ]的合法連續和,可以感性理解發現他有monge condition)
可以二分隊列套持久化或分治用multiset雙指針維護前k小
複雜度:O(nlog^2n)
然後就可以順便去寫紗霧與正宗
然後去看Caido's coding blog的題解
你就會用SMAWK O(n)做轉移點單調的部分了
複雜度:O(nlogn)
然後你就會比python快了