![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调队列
文章平均质量分 72
zhangwei1120112119
这个作者很懒,什么都没留下…
展开
-
BIT1011 Maximum Sum II
题意 给一个序列,求一个长度不超过k的连续子序列 该子序列的和尽可能的大 对序列a[0],a[1],,,,a[n-1] 算出sum[0],sum[1],,,,,sum[n-1] sum[i]=a[0]+a[1]+...a[i] 对最大字序列的和a[i],a[i+1],,,,a[j] 为sum[j]-sum[i-1] 对于j要找到i-1使得sum[j]-sum[i-1]最大 且j-原创 2013-02-19 12:26:19 · 360 阅读 · 0 评论 -
poj 2823 Sliding Window
题意: 输入第一行为n和k,第二行有n个数a[0],a[1]...a[n-1] 输出第一行求F[i]=min(a[i-k+1],,,,,,,a[i]) 输出第二行求F[i]=max(a[i-k+1],,,,,,,a[i]) 解法: 维护一个递增的单调队列,求出最小值的F[i] 维护一个递减的单调队列,求出最大值的F[i] 代码: #include #include #inclu原创 2013-03-10 12:34:16 · 497 阅读 · 0 评论 -
poj3250 Bad Hair Day
题意: 第一行输入是一个整数n 表示接下来给出n头牛的高度,比如 10 3 7 4 12 2 问每头牛往又看能看到的牛的头顶的数量,最后累加即为答案 10可以看到3 7 4 ,无法看到12之后的2和12本身 解法: 由于题意和输入顺序是相反的 所以逆向思维,求出每头牛能被多少牛看到 维护一个递减的单调队列,将每头牛加入队列后队列的长度-1就是该牛能被看到头顶的牛的数量原创 2013-03-10 13:37:38 · 992 阅读 · 0 评论 -
hdu3530 Subsequence
题意: 给出n,m,k和n个数a[0],a[1],,,,a[n-1] 对n个数,求其中的一个最长的连续子序列 这个字序列的最大值与最小值之差满足大于等于m小于等于k 动态规划 状态定义dp[i]表示以i结束的满足条件的最长字序列的长度 转移方程 对dp[i-1]的序列中的最大值MAX和最小值MIN 如果此序列中加入a[i]后MAX-MIN 若MAX-MIN>k,可通过踢出MAX与原创 2013-03-10 19:48:32 · 842 阅读 · 0 评论 -
poj2559 Largest Rectangle in a Histogram hdu1505 City Game
POJ2559 题意: 在直方图中找出最大矩形 如图,输入数据为 7 2 1 4 5 1 3 3 7为个数,直方图如上图 枚举所有宽为1的矩形,往两边扩充,找出完整包含他的且面积最大的矩形。 若假设指定的是第k个宽为1的矩形,他到左边可以扩充到第lk个宽为1的矩形,他到右边可以扩充到第rk个宽为1的矩形,用单调队列求解lk和rk即可。 维护递增的单调队列,队原创 2013-03-10 15:21:42 · 1038 阅读 · 0 评论 -
poj1276 Cash Machine
题意: 735 3 4 125 6 5 3 350 633 4 500 30 6 100 1 5 0 1 735 0 0 3 10 100 10 50 10 10 第一行的意思是给一个735大小的背包 然后3表示后面有3种物品,4和125表示,有个物体大小为125,价值为125,有4个 多重背包求解,交的时候忘了注释freopen,狂WA。。二进制解法如下。原创 2012-11-17 22:56:53 · 386 阅读 · 0 评论 -
poj1742 Coins
三天了,从一点不会单调队列到AC。。。。。 dp[i]表示i容量是否能凑出来 num[i]表示当前i容量使用当前硬币的数目 关于单调队列优化多重背包的思想,在《国家集训队2009论文集浅谈几类背包题》有详细介绍 #include #include #include using namespace std; int a[110]; int c[110]; bool dp[100010原创 2013-03-13 18:17:07 · 751 阅读 · 0 评论