
栈,队列
一所悬线
这个作者很懒,什么都没留下…
展开
-
C - Subsequence HDU - 3530
题意:给定一个序列,求一个连续区间满足区间最大差距在l,r之间。 思路:单调队列维护最大值最小值。 分析:记录起点,维护最大值最小值在队头,当队头的差距大于l时出队,出队时选择两个队列中较小的下标,具体过程按照代码跑一遍就差不多可以理解单调队列的作用。 #include<bits/stdc++.h> using namespace std; #define ll long lo...原创 2019-01-12 12:04:38 · 166 阅读 · 0 评论 -
Beans HDU - 2430
题意:有n堆豆子,选择其中连续的几堆,装进大小为m的袋子中,问最多能装满几袋,在剩余豆子不超过k的情况下。 思路:求(sum[i] - sum[j](i != j)) % m <= k && 使得(sum[i] - sum[j])/m最大。可以按sum[i] % m,给数组排序,用单调队列来解决这个问题。用余数的差距去维护是否出队列。维护队列递增sum[i](头小尾大)。 ...原创 2019-01-12 16:56:56 · 215 阅读 · 0 评论