51nod-3385干草堆
https://www.acwing.com/problem/content/description/333/
https://class.51nod.com/Html/Textbook/Problem.html#problemId=3385&textbookChapterId=724
https://class.51nod.com/Html/Textbook/ChapterIndex.html#textbookId=126&chapterId=337
https://www.luogu.com.cn/problem/P4954
参考题解:https://www.acwing.com/solution/content/75999/
\(f\) 非严格递增是因为你把最后一个干草堆在底部,答案一样;其他情况肯定更优。
所以单调队列队首一直弹直到遇到最后一个满足条件的,根据题解分析就是最优的。
要维持二段性,需要保证 \(g_k+s_k\) 递增,这样对于前面满足的,后面才会满足,上面的弹出才是合法的;而这个弹出符合最优性:他更后面,而且前者满足他也满足,只要前者有方案,选择后者会更优。
\(O(n)\)