单调队列
文章平均质量分 53
xbb052
c++大学生
展开
-
裁剪序列(单调队列,贪心,dp,multiset,双指针)
给定一个长度为 N 的序列 A,要求把该序列分成若干段,在满足“每段中所有数的和”不超过 M 的前提下,让“每段中所有数的最大值”之和最小。第二行包含 N 个整数,表示完整的序列 A。涉及动态规划,贪心,单调队列和双指针。序列A中的数非负,且不超过10^6。第一行包含两个整数 N和 M。如果结果不存在,则输出 −1。输出一个整数,表示结果。原创 2023-02-26 19:15:11 · 95 阅读 · 0 评论 -
acwing 154.滑动窗口
首先这道题可以暴力枚举,但肯定超时了,我们可以模拟一个单调队列,每次入队时,将入队元素x与队尾的元素进行比较,小于x则删去队尾元素(取最大值时则相反),这样可以形成一个单调的队列,每次取队头元素,优化了时间复杂度。下面为输出窗口中最大的数,只需将比较队尾元素时的>=改为原创 2023-02-09 15:41:34 · 51 阅读 · 0 评论