E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
单调栈+单调队列
Leetcode-
单调栈
单调栈
适用于当你需要高效率的查询某个位置左右两侧比他大或小的数的位置1.买卖股票的最佳时间:维护
单调栈
的思路:在pricespricesprices数组的末尾加上一个哨兵✈️(也就是一个很小的元素,这里设为
qiaoqiaomumu
·
2020-08-25 02:54
Leetcode
接雨水(
单调栈
)
42.接雨水给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例:输入:[0,1,0,2,1,0,1,3,2,1,2,1]输出:6法一找出每根柱子左右的最高点,取两边最高柱子最小的高度,与中间柱子高度相减就是凹槽的高度classSolution{public:inttrap(vector&height){intn=height.size();vectorl
ガッシュ·ベル
·
2020-08-25 02:39
leetcode
Leetcode刷题看到的一些概念——
单调栈
输出想要观测到更高温度至少要等待的天数,如果不存在更高的天数,该位置取0例如:temperatyres=[73,74,75,71,69,72,76,73]输出=[1,1,4,2,1,1,0,0]维护一个存储下标的
单调栈
七七不是七七七七
·
2020-08-25 02:02
C++刷题
算法-
单调栈
问题合集
算法-
单调栈
问题合集1、移掉K位数字,使剩下的数字保持最小2、移掉K位数字,使剩下的数字保持最大3、去除重复字母,使字典序最小
单调栈
顾名思义是一种单调递增或者单调递减的栈,虽然很简单,但是的确是一种高级数据结构
亦泽同学
·
2020-08-25 01:23
数据结构与算法分析
单调栈
的应用
可以解决求数组元素左边第一个大于其的元素接雨水leetcode42给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/trappi
InAHurryv
·
2020-08-25 01:44
算法
商品折扣后的最终价格(
单调栈
)
【题目】1475.商品折扣后的最终价格给你一个数组prices,其中prices[i]是商店里第i件商品的价格。商店里正在进行促销活动,如果你要买第i件商品,那么你可以得到与prices[j]相等的折扣,其中j是满足j>i且prices[j]stack=newStack<>();//维护一个单调递增的栈for(inti=0;i
Sophia_fez
·
2020-08-25 01:44
Leetcode
#
栈
单调栈
复习--最大01子矩阵 01矩阵统计全1矩阵数量
最大01子矩阵例题:POJ3494代码实现有些许复杂#include#includeusingnamespacestd;constintN=2e3+10;intn,m,a[N][N],h[N][N],l[N][N],r[N][N];intmain(){while(~scanf("%d%d",&n,&m)){for(inti=1;ista;sta.push(0);h[i][0]=-1;for(int
ccsu_deer
·
2020-08-25 01:46
数据结构--单调栈&单调队列
cf1208E Let Them Slide
单调队列
,st表,线段树都可以维护数组的区间最值。最后答案差分输出。
复杂的哈皮狗
·
2020-08-24 23:43
数据结构
小阳买水果(前缀和,
单调栈
,思维)
链接:https://ac.nowcoder.com/acm/contest/949/D来源:牛客网水果店里有nnn个水果排成一列。店长要求顾客只能买一段连续的水果。小阳对每个水果都有一个喜爱程度aia_iai,最终的满意度为他买到的水果的喜欢程度之和。如果和为正(不管是正多少,只要大于0即可),他就满意了。小阳想知道在他满意的条件下最多能买多少个水果。你能帮帮他吗?输入描述:第一行输入一个正整数
tb_youth
·
2020-08-24 23:40
思维题
BZOJ3039 最大01子矩阵
单调栈
//#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;#definelllonglong#defineullunsignedlonglong#definepbpush_back#definemem(a)memset(a,0,sizeofa
Drenight
·
2020-08-24 22:08
单调栈
NOIP 2017 考点总结及复习规划
一、数据结构初级数据结构1.链表,双向链表2.队列,
单调队列
,双端队列,栈,
单调栈
3.堆基础数据结构1.并查集与带权并查集2.hash表3.树状数组,线段树,线段树合并*4.主席树**5.平衡树*6.左偏树
onepointo
·
2020-08-24 22:59
noip
单调队列
入门——POJ - 2823,HDU - 3530,HDU - 2430
单调队列
,顾名思义,维护的队列中的数据是呈单调递增或者单调递减的,在维护
单调队列
时,例如单调递增队列,当有新的数据入队,则从队尾开始,把所有大于该数的项目pop出队列,保证了这个数据入队后整个队列依旧是单调递增的
Sega_hsj
·
2020-08-24 22:35
数据结构
树形DPpoj3162
求出最远距离后就是两个指针一起跑,然后要得到这两个指针区间的最大值和最小值,可以用线段树也可以用
单调队列
,我用的
单调队列
,代码如下#in
as604412059
·
2020-08-24 21:45
树形dp
【算法入门】
单调队列
优化动态规划:[RomaniaOI2002]Fence
ProblemDescriptionAteamofk(1#include#include#includeusingnamespacestd;structnode{intl,p,s;};nodea[200];intN,K,t,h;intL[200],P[200],S[200],f[200][50000],q[50000];inlineboolcmp(nodea,nodeb){if(a.s>N>>K;
pigzhouyb
·
2020-08-24 21:44
动态规划DP
单调队列
的应用
一、描述给定一个长度为n(n1,放入下标后的到que{0,1}.第三个元素-1-3.得到que{3.4}....#include#includeusingnamespacestd;intarr[1000000];intque[1000000];inthead=0,rear=-1;intempty(){returnrear=head)rear--;//找到新插入元素的位置,并清除大于该元素的旧元素q
HuanTongH
·
2020-08-24 21:11
数据结构
[简单DP] 最长公共子序列/LCS
菜至极只会n2n^2n2考虑转化这是个排列,就可以搞事情把一个数列的数变成下标,相应的替换另一个数列里的数这样不会改变两个数列LCS的本质转化后发现只需要求另一个数列的LIS(最长上升子序列)了LIS当然用
单调队列
优化优秀
锑元素使者
·
2020-08-24 21:15
#
简单DP
2017 杭电多校联赛第二场 1003 Maximum Sequence(
单调队列
)HDU 6047
MaximumSequenceTimeLimit:4000/2000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):0AcceptedSubmission(s):0ProblemDescriptionStephisextremelyobsessedwith“sequenceproblems”thatare
咿呀而已
·
2020-08-24 11:34
2017多校联赛
比赛
2017多校联赛
杭电
单调栈
单调队列
stl及手写实现,附例题
单调队列
:有单调性的队列(单调递增或递减),相比普通队列不同在于可以在队尾进行pop操作特点:可以快速取出最大值或最小值(队首元素)严格单调序列:a1deque是双端队列,既有队列的性质也有栈的性质。
Dragoncard
·
2020-08-24 11:43
队列
队列
数据结构
hdu5289 Assignment(极差<k的子区间数量,单调性证明+双指针+
单调队列
)
问有多少个子区间,满足该子区间的最大值和最小值的差值=k,ma()和mi()需要rmq数据结构.解法3:枚举r,指针维护l,指针向右移动得条件是ma(l,r)-mi(l,r)>=k,[l,r]的ma和mi用两个
单调队列
维护解法
这有点难啊
·
2020-08-24 11:17
G - Sliding Window (
单调队列
)
https://vjudge.net/contest/283317#problem/GAnarrayofsizen≤106isgiventoyou.Thereisaslidingwindowofsizekwhichismovingfromtheveryleftofthearraytotheveryright.Youcanonlyseetheknumbersinthewindow.Eachtimet
qq_43490894
·
2020-08-24 09:48
GDUT
Winter
Training
V
2020 leetcode 刷题记录
刷题杂题链表位运算双指针
单调栈
二叉树字符串动态规划二分杂题二叉树的三种迭代遍历:code十种排序leetcode347.前K个高频元素巧妙使用快排的思想leetcode399.除法求值带权并查集leetcode621
NOTRp
·
2020-08-24 08:50
刷题
牛客算法周周练15 解题报告(ABD)
牛客算法周周练15A-数列下标(
单调栈
)牛客算法周周练15B-可持久化动态图上树状数组维护01背包(贪心)牛客算法周周练15D-树上求和(DFS序+线段树维护平方和)比赛AC了两题,然后A题跑暴力侥幸过了
_Hayasaka
·
2020-08-24 07:30
赛后报告
【Gym 102059A】Coloring Roads(树链剖分+
单调栈
)
https://codeforc.es/gym/102059/problem/A题意给出一棵树。询问u,c,m:将结点u到根节点路径上的边都染色成c,询问染色边数为m的颜色有多少种。题解每次都是从一个结点到根,所以可以对这颗树进行树链剖分(heavy-lightdecompose)维护has[col]代表颜色col有多少条边。cnt[m]边数为m的颜色有多少个。dfn[v]:结点v的dfs编号。对
Link_Ray
·
2020-08-24 07:35
树链剖分
单调栈
单调队列
常用二元组表示始终保持队首是区间内的最值查询复杂度O1入队复杂度均摊O1滑动窗口模板题线性dp中的典型应用在从队首取之前确保队首的id是在范围中的在窗口滑动的过程中确保id越合适值越大/小的元素能适时让back的元素出队
tycw
·
2020-08-24 07:10
dp
2020杭电多校第一场(解题报告)
输入:13112332输出:2hint:
单调栈
的做法。先将所有小车按照加速度从小到大的顺序排列,加速度相同时按照初始位置从小到大排列。如此以来,后面的车都能超越前面的车。所以维护一个栈,(栈中:栈顶。
chasing__wind
·
2020-08-24 07:23
单调栈
杭电多校
憨批min栈
Abstract讨论了min栈变形题,获取栈中第二小的数,的思路Min栈常规思路双栈stackA,stackB变形题求第二小的数case1第一小和第二小可以重复本质上还是
单调栈
,push时,针对min栈
一大碗恩希玛
·
2020-08-24 06:54
数据结构与算法
单调栈
经典模板(Codeforces Round #305 (Div. 2), problem: (D) Mike and Feet)
#includeusingnamespacestd;constintmaxn=200000+10;stackstk;inta[maxn],dpl[maxn],dpr[maxn],ans[maxn];intmain(){intn;scanf("%d",&n);for(inti=1;i=a[i])stk.pop();if(stk.empty())dpl[i]=1;elsedpl[i]=stk.top(
j_d_m_y
·
2020-08-24 00:51
51Nod - 1249 近似有序区间 (
单调栈
+树状数组+偏序)(好题)
题目链接极大极小子段,就是一个序列,它的最小值在最前面,它的最大值在最后面。现在给你一个由1~n的一个排列构成的数组S,求它有多少个这样的子段例如:S={3,1,2,5,4},S的所有极大极小子段为:{3},{1},{1,2},{1,2,5},{2},{2,5},{5},{4}Input第一行:一个数N,表示S的长度。(1=j&&i>=j,其中b【i】代表第i个数字作为最大值的最左的端点,d【i】
qq_42479630
·
2020-08-23 18:11
树状数组
739.每日温度 python3
采用
单调栈
,
单调栈
就是可以求左边或者右边,最大或者最小的第一个数。
xfdelovely
·
2020-08-23 18:51
leetcode
题目
单调队列
单调队列
~~~~同时食用效果更佳1.
单调队列
可以干嘛?
Eustiana
·
2020-08-23 12:00
NOIP2016-D2-T2 蚯蚓(
单调队列
)
构建三个
单调队列
(用STL),分别储存未切的蚯蚓,切后的第一段,切后的第二段,即可简单证明其单调性。
weixin_30920597
·
2020-08-23 07:40
2019暑期训练
牛客多校:ABCDEFGHIJ第一场题解笛卡尔树(不会)/
单调栈
数学推公式暴力DP数学推公式线性基线段树+动态规划水题通过情况√√√√√√待补√第二场爆搜
单调栈
通过情况√√第三场通过情况第四场通过情况第五场题解签到快速幂简单
weixin_30622181
·
2020-08-23 07:45
#
单调栈
#poj 2559 洛谷 SP1805 Largest Rectangle in a Histogram
分析这道题目可以用
单调栈
的,维护一个单调递增的栈,从左到右枚举每一个矩形,如果当前矩形比栈顶高,直接入队,否则不断取出栈顶,直到栈为空或当前矩形比栈顶高,在出栈时,不断累计矩形的宽度,累计答案,并把最后的矩形入栈
ssl_xjq_逐风之刃
·
2020-08-23 07:43
栈
队列
链表
单调栈
解决木板倒水问题
题目:地上从左到右竖立着n块木板,从1到n依次编号,如下图所示。我们知道每块木板的高度,在第n块木板右侧竖立着一块高度无限大的木板,现对每块木板依次做如下的操作:对于第i块木板,我们从其右侧开始倒水,直到水的高度等于第i块木板的高度,倒入的水会淹没ai块木板(如果木板左右两侧水的高度大于等于木板高度即视为木板被淹没)。求n次操作后,所有ai的和是多少。如图所示,在第4块木板右侧倒水,可以淹没第5块
延春
·
2020-08-23 06:16
计蒜客
单调栈
数据结构
BZOJ P2091[Poi2010]The Minima Game
简单到爆炸)的题目QAQ我想了半天(10秒)QAQ我码了半天代码(半分钟)QAQ我可能会被膜(被R)QAQ这题自己随便yy一下就可以了显然你取的数字肯定是要在排完序之后连续的嘛然后xjb搞一下就可以了,还想用
单调队列
优化来着其实只用记录一下就可以了呃呃呃呃呃呃鹅鹅鹅鹅鹅鹅饿来啊
萌呆233
·
2020-08-23 06:31
bzoj
单调栈
解木板倒水问题(
单调栈
的简单应用)
题目描述:地上从左到右竖立着n块木板,从1到n依次编号,如下图所示。我们知道每块木板的高度,在第n块木板右侧竖立着一块高度无限大的木板,现对每块木板依次做如下的操作:对于第i块木板,我们从其右侧开始倒水,直到水的高度等于第i块木板的高度,倒入的水会淹没ai块木板(如果木板左右两侧水的高度大于等于木板高度即视为木板被淹没),求n次操作后,所有ai的和是多少。如图上所示,在第4块木板右侧倒水,可以淹没
Adherer
·
2020-08-23 06:20
数据结构——栈
蚯蚓_NOIP2016D2T2_
单调队列
Description本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」=[3.1」=[3.9」=3。蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。蛐蛐国里现在共有n只蚯蚓(n为正整数)。每只蚯蚓拥有长度,我们设第i只蚯蚓的长度为a_i(i=1,2,…,n),并保证所有的长度都是非负整数(即:可能存在长度为0的蚯蚓)。每一秒,神刀手会在所
olahiuj
·
2020-08-23 06:01
c++
单调队列
单调栈
解木板倒水问题
题目描述:地上从左到右竖立着n块木板,从1到n依次编号,如下图所示。我们知道每块木板的高度,在第n块木板右侧竖立着一块高度无限大的木板,现对每块木板依次做如下的操作:对于第i块木板,我们从其右侧开始倒水,直到水的高度等于第i块木板的高度,倒入的水会淹没ai块木板(如果木板左右两侧水的高度大于等于木板高度即视为木板被淹没),求n次操作后,所有ai的和是多少。如图上所示,在第4块木板右侧倒水,可以淹没
dongchuan5097
·
2020-08-23 05:06
题解 P1016 旅行家的预算
题目传送门(以纪念调了两个半小时的
单调队列
)emmm这题
单调队列
可海星...因为每个点有油量无限的,但是油箱容量是无限的(正好反的一道题SP348EXPEDI-Expedition)所以我们可以用一个价格递减
单调队列
来记录已加过油的加油站若要行驶到一个新的加油站时
diaohan2969
·
2020-08-23 05:30
NOIP模拟 10.17
单调队列
+ 树形Dp + 区间Dp
烟火(fireworks.cpp/c/pas)【题目描述】城镇的主干道上有n个区域,从左到右编号为1到n,每个区域之间相距1个单位距离。在节日中要放m个烟火,第i个烟火会在ti时刻的ai区域放。如果在ti时刻你所处区域为x,那么你可以获得bi-|ai-x|的快乐值。在每个单位时间你可以移动不超过d个单位距离,初始的位置是任意的,求通过移动能获得快乐值和的最大值。【输入格式】第一行三个整数n,m,d
MaxMercer
·
2020-08-23 05:55
NOIP模拟
洛谷 P1886 滑动窗口 /【模板】
单调队列
(
单调队列
、线段树、RMQ(ST表))
题目描述有一个长为nn的序列aa,以及一个大小为kk的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。例如:Thearrayis[1,3,-1,-3,5,3,6,7][1,3,−1,−3,5,3,6,7],andk=3k=3。输入格式输入一共有两行,第一行有两个正整数n,kn,k。第二行nn个整数,表示序列aa输出格式输出共两行,第一行为每次窗口滑动的最小
菱形继承
·
2020-08-23 03:02
#
luogu
单调队列
与DP
算是一个总结吧!先来一个模板;TYVJ1305最大子序和题目描述输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大。例如1,-3,5,1,-2,3当m=4时,S=5+1-2+3=7当m=2或m=3时,S=5+1=6输入输出格式输入格式:第一行两个数n,m第二行有n个数,要求在n个数找到最大子序和输出格式:一个数,数出他们的最大子序和输入输出样例输入样例#1:641-
weixin_30667301
·
2020-08-23 03:06
Dividing(多重背包、
单调队列
优化dp)
DividingTimeLimit:2000/1000ms(Java/Other)MemoryLimit:65536/32768K(Java/Other)TotalSubmission(s):0AcceptedSubmission(s):0Font:TimesNewRoman|Verdana|GeorgiaFontSize:←→ProblemDescriptionMarshaandBillowna
w-y-p
·
2020-08-23 03:47
动态规划
2018.07.17【2018提高组】模拟C组
题目JZOJ1264乱头发节题目求一头牛到后面第一头不低于该牛身高的牛之间的牛的数量(不包括两头牛,如果没有不低于的,就当做最后有一头无限高的牛)分析
单调栈
!
ssl_xjq_逐风之刃
·
2020-08-23 02:55
模拟赛
单调队列
斜率优化
状压dp
数位dp
最短路径
合并果子(哈夫曼编码)
显然,用STL里面的
单调队列
做。
蓝
·
2020-08-23 02:01
CF319C Kalila and Dimna in the Logging Industry Solution
这是一道
单调队列
的板题题目链接(Luogu)Codeforces题意伐木工人用电锯伐木,一共需要砍nnn棵树,每棵树的高度为aia_iai,每次砍伐只能砍111单位高度,之后需要对电锯进行充电,费用为当前砍掉的树中最大
smoothset
·
2020-08-23 02:52
c++
poj1014多重背包--
单调队列
优化
但是最好的还是
单调队列
优化.它时怎么实现的呢?还是以pod1014的diving来说吧!在这道题中,可以利用多重背包来进行求解。首先,
单调队列
是两端删除,末尾插入的队列,其队列内部满足了单调性。
South-twilight
·
2020-08-23 02:29
算法
dp
P1404 平均数(二分)
P1404平均数(二分)这是一个很常见的二分题目可能题目正解不是二分是
单调队列
,而这题呢我之前一直被几组数组卡到怀疑人生,01数规划嘛就是让a[i]-mid,然后加起来如果>=0那么就满足条件,然后我就想着长度为
qcccc_
·
2020-08-23 02:53
acm暑训
二分
牛客
KEKS--------
单调栈
KEKS题目描述Mirko和Slavko再一次厌倦了数学课,所以他们发明了一个新游戏。Mirko写下N个数字组成的一个数,Slavko的任务是算出除去K个数字后的最大值。输入第一行两个整数N和K。(1≤K≤N≤500000)接下来的一行有一个长度为N的数。输出一行,即题目所求最大值。样例输入421924样例输出94提示Input731231234Output3234Input10441772528
nbtaoyc
·
2020-08-23 02:57
算法
【跳棋、跳房子】与
单调队列
【跳棋】题目描述小明迷恋上了一个新的跳棋游戏,游戏规则如下:棋盘是一排从0开始,顺序编号的格子,游戏开始时你位于0号格子,你每次只能往编号大的格子跳,而且你每次至少需要跳过L个格子,至多只能跳过R个格子。每个格子都有一个给定的伤害值,显然你希望得到的伤害值越少越好。你能告诉小明他当他跳到最后一个格子时受到的累积伤害值最小为多少吗?如果无论如何小明都无法跳到最后一个格子,这个时候你需要输出”-1”。
nbtaoyc
·
2020-08-23 02:57
算法
上一页
32
33
34
35
36
37
38
39
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他