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)\)

https://www.luogu.com.cn/record/168775790

posted @ 2024-07-26 20:55  wscqwq  阅读(6)  评论(0编辑  收藏  举报