
+++单调队列、单调栈
ramay7
Life is not short,but float.
展开
-
HDU 1506 Largest Rectangle in a Histogram(最大矩形面积、单调栈)
题目链接: HDU 1506 Largest Rectangle in a Histogram 题意: 给出一排紧密并列的矩形的高,宽均为1,求从中可以划分出的最大的矩形面积? 数据范围:n≤105,hi≤109n\leq 10^5,h_i\leq 10^{9} 分析: 单调栈求出每个矩形可以向左向右延伸的最大长度。 单调栈、单调队列学习博客 时间复杂度:O(n)O(n)#inclu原创 2016-07-25 23:41:44 · 1368 阅读 · 0 评论 -
POJ 3494 Largest Submatrix of All 1's(最大全1子矩阵面积、单调栈)
题目链接: POJ 3494 Largest Submatrix of All 1’s 题意: 给出一个n∗mn*m的01矩阵,求出最大全1子矩阵面积。 数据范围:n,m≤2000n,m\leq 2000 分析: 我们把每一行单独处理,把从这行向上连续延伸全为1的最大长度看成是矩形的高,那么每行其实就是求个最大矩形面积。 height[i][j]:第i行第j列元素往上最长的连续1长度h原创 2016-07-25 23:53:31 · 1733 阅读 · 4 评论 -
HDU 5749 Colmerauer(单调栈、思维、组合)
题目链接: HDU 5749 Colmerauer 题意: 给一个n∗mn*m的矩阵,定义长为aa宽为bb的矩阵的函数S(a,b)S(a,b)是矩阵中所有鞍点的权值和。一个矩阵的鞍点是所有满足在同一行中唯一最小,同一列中唯一最大的点。求: ∑i=1i=n∑j=1j=mi∗j∗S(i,j)(mod 232)\sum_{i=1}^{i=n}\sum_{j=1}^{j=m}i*j*S(i,j)\q原创 2016-07-26 21:17:46 · 573 阅读 · 0 评论 -
POJ 2823 Sliding Windows(单调队列)
题目链接: [POJ 2823 Sliding Windows](http://poj.org/problem?id=2823 题意: 有nn个数,可以用一个长度为kk的矩形框住连续的kk个数,要求依次输出矩形在这n−k+1n-k+1个位置的每个区间的最大值和最小值。 数据范围:n≤106n\leq 10^6 单调队列: 单调栈主要用于解决元素对所影响的区间长度,而单调队列主要用于解决给原创 2016-07-28 00:23:00 · 441 阅读 · 0 评论 -
HDU 3415 Max Sum of Max-K-sub-sequence(长度不超过k的最大连续子序列和,单调队列)
题目链接: HDU 3415 Max Sum of Max-K-sub-sequence 题意: 给nn个数,首尾相连,求长度不超过kk的最大连续子序列和。 数据范围:1≤n≤100000,1≤k≤n1\leq n\leq100000 , 1\leq k\leq n 分析: 因为考虑首尾相连,所以我们把nn个数看成2∗n2*n个数,其中data[n+]=data[i]data[n+]=原创 2016-07-28 00:33:06 · 2408 阅读 · 0 评论 -
HDU 4193 Non-negative Partial Sums(前缀和非负点个数,单调队列)
题目链接: HDU 4193 Non-negative Partial Sums 题意: 给一个nn个数的数环,求任意前缀和非负的点个数? 数据范围:n≤106n\leq 10^6 分析: 其实这道题和UVALive 6087 Fuel Stops是一样的。之前的做法也能做。 如果用单调队列做的话,需要转化成前缀和问题。对于位置ii的数,如果以它为结尾最长长度为nn的前缀和均非负,其实原创 2016-07-28 00:44:04 · 770 阅读 · 0 评论 -
POJ 2796 Feel Good(单调栈)
题目链接: POJ 2796 Feel Good 题意: 一个区间的权值是区间元素之和乘以区间最小的元素值。给一个长度为nn的数组,求最大子区间权值。 数据范围:n≤106,data[i]∈[0,106]n\leq 10^6,data[i]\in [0,10^6] 分析: 考虑到每个数非负,只需要利用单调栈处理出每个数向左向右是最小值的最大区间就好了。#include <stdio.h>原创 2016-07-29 12:20:42 · 431 阅读 · 0 评论 -
HDU 3530 Subsequence(区间最值差>=m且<=k的最大长度、双单调队列)
题目链接: HDU 3530 Subsequence 题意: 给一个长度为nn的数组,求最大的区间长度,并且这个区间满足最大值与最小值之差diff∈[m,k]diff\in[m,k],即大于等于mm,小于等于kk. 数据范围:n≤105,m,k∈[0,106]n\leq 10^5,m,k\in [0,10^6] 分析: 因为是在做单调队列的题,所以往单调队列上想可能容易点。 首先我们考原创 2016-07-29 18:49:40 · 866 阅读 · 0 评论 -
HDU 4213 Bob’s Race(树形dp+单调队列)
题目链接: HDU 4213 Bob’s Race 题意: 给出一个nn个节点的树,先对每个点求最远可到的距离,然后有mm询问,每次询问找一个最长的区间使得区间的距离最值差小于等于limitlimit,输出区间长度。 数据范围:n≤5∗104,m≤500,单条边权:≤5000,limit≤107n\leq 5*10^4,m\leq 500,单条边权:\leq 5000,limit\leq原创 2016-08-08 22:49:10 · 521 阅读 · 0 评论