单调队列&单调栈
humeay
这个作者很懒,什么都没留下…
展开
-
单调队列1003 HDU 3530 Subsequence
Problem DescriptionThere is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the maximum element and the minimum eleme原创 2016-06-21 21:55:31 · 260 阅读 · 0 评论 -
单调队列1002 HDU 4122 Alice's mooncake shop 对于学习单调队列的同学不建议做,浪费时间的模拟水题
Problem DescriptionThe Mid-Autumn Festival, also known as the Moon Festival or Zhongqiu Festival is a popular harvest festival celebrated by Chinese people, dating back over 3,000 years to moon worship原创 2016-06-21 21:54:27 · 284 阅读 · 0 评论 -
单调队列1001 HDU 3706 Second My Problem First 单调队列入门题
Problem DescriptionGive you three integers n, A and B. Then we define Si = Ai mod B and Ti = Min{ Sk | i-A <= k <= i, k >= 1} Your task is to calculate the product of Ti (1 <= i <= n) mod B. 题意: 给原创 2016-06-21 21:52:23 · 339 阅读 · 0 评论 -
单调栈1003 scuoj3329 Maximum Submatrix II
题意: 给一个n*m的01矩阵,求最大的只包含0的子矩阵 思路: 就把每行当做最下面的一行进行枚举 然后就像POJ2559一样做了 维护一个最小高度 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<math.h> #include<queue> #include<sta原创 2016-07-17 16:01:56 · 289 阅读 · 0 评论 -
单调栈1002 POJ 2559 Largest Rectangle in a Histogram
题意: 给n个宽度为1,长度不一样的矩形排在一起 这个图形里的最大的矩形面积 思路: 单调栈维护最小高度,入栈的时候记录最早的大于等于当前高度的位置 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<math.h> #include<queue> #include<stac原创 2016-07-17 16:00:35 · 188 阅读 · 0 评论 -
单调栈1001 POJ2796 Feel Good
题意: 给一个序列代表某个人的第i天的幸福指数,求一个最幸福的时间段 时间段的幸福指数是该时间段幸福指数的和*该时间段内最低的幸福指数 思路: 求出以第i天为最低的幸福指数的最大区间 单调栈的经典问题 注意一下下边的数据… InPut: 1 0 OutPut: 0 1 1#include<stdio.h> #include<string.h> #include<iostre原创 2016-07-17 15:59:48 · 186 阅读 · 0 评论 -
单调队列1007 Codeforces Round #219 (Div. 1) 372C. Watching Fireworks is Fun
题意: 在一条街上有n个点.之后会有m个烟花点燃 每个烟花有三种属性 ai bi ti ai代表烟花点燃的位置 ti代表烟花点燃的时间 假设当前人在位置x 那么就会得到一个值bi-|ai-x| 在第0秒的时候,位置是随意的 每秒可以移动<=d的位置 问点燃完m个烟花后得到值得和的最大值 思路: 我们需要求sigma(bi-|ai-x|)-> sigma(bi)-sigma(原创 2016-07-16 16:07:29 · 231 阅读 · 0 评论 -
单调队列1006 POJ 1821 Fence
题意: 有一个长度为n的墙壁,有k个粉刷匠来刷墙 每个粉刷匠都有三种属性 1.最大刷墙的距离(必须是连续的区间 2.刷每块墙的价格 3.初始位置(刷墙的区间必须包含初始位置 求这几个粉刷匠刷长度为n的墙最多赚多少钱 思路: 我们考虑 dp[i][j]为前i个粉刷匠刷前j面墙最多的赚的钱 我们考虑对于每个粉刷匠刷墙 把墙分成两种 1.能刷到的 2.刷不到的 对于刷不到的原创 2016-07-16 16:06:39 · 193 阅读 · 0 评论 -
单调队列 1005 HDU 2430 Beans
题意: 有n袋大豆,每袋大豆里有w[i]个大豆,现在有容量为p的包 问你选任意长度的连续区间,这个区间满足Sum%p<=k|Sum是区间的和 答案使Sum/p最大 思路: 区间嘛,很容易想到前缀和来表示区间和 区间(j+1)~i就是Sum[i]-Sum[j](为了使Sum[j]好表示些,所以前边用了j+1 判断此区间%p是否小于<=k (Sum[i]-Sum[j])%p==(Sum原创 2016-07-16 16:05:11 · 283 阅读 · 0 评论 -
单调队列1004 Codeforces Round #154 (Div. 2) 253D. Table with Letters - 2
题意: 给一个n*m的字母矩阵,问你有多少个子矩阵满足下面两个要求 1.矩阵四个角的字母都一样 2.矩阵内’a’的个数小于k 思路: 枚举矩阵的横边的行数,然后再枚举列数 因为每一列的状态得到的答案可以由之前列推出来 所以我们对每一列进行类似单调队列的推 #include<stdio.h> #include<string.h> #include<iostream> #include<a原创 2016-07-16 16:03:24 · 289 阅读 · 0 评论 -
单调栈1004 scu2801 正方形
题意: 在平面 N*N ( N <= 1000 ) 的格子上有一些障碍物 要求找到一个最大的正方形,它的内部不包含障碍物 思路: 跟求矩形比起来,求一个min(Right[i]-Left[i]+1,Height[i])的最大值就行了 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #inc原创 2016-07-17 16:02:57 · 442 阅读 · 0 评论