单调队列/栈
文章平均质量分 50
.
EschatonAyane
风会带走我曾经存在过的证明
展开
-
【51nod P2636】卡车加油【堆,贪心】
linklinklink分析:按距离最近的走 选其中油最多的加 就可以用堆维护CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>#define reg registerusing namespace std;typedef long long ll;const int N=1e4+5;int .原创 2022-01-20 16:41:10 · 133 阅读 · 0 评论 -
【洛谷P1090,SSL1040】合并果子【堆】
分析:找最小的加入堆stl Code:stl~Code:stl Code:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>#define reg registerusing namespace std;typedef long long ll;int n,ans;priority_q.原创 2022-01-20 10:47:52 · 322 阅读 · 0 评论 -
【SSL1271】排序I【堆】
分析:堆排序模板stl Code:stl~Code:stl Code:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>#define reg registerusing namespace std;typedef long long ll;priority_queue<int,v.原创 2022-01-20 09:26:34 · 111 阅读 · 0 评论 -
【SSL2521】数数【单调队列】
分析:用前缀和求区间和 其他单调队列CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int N=1e5+5;typedef long long ll;int n,k;ll a[N],ans;deque<int> q;int m.原创 2022-01-15 10:53:47 · 56 阅读 · 0 评论 -
【51nod P1275】连续子段的差异【单调队列】
linklinklink分析:维护两个单调队列 单调增和单调减 这样就可以维护以 iii 结尾的最长合法子序列这段合法的小子序列个数 即这个最长序列的长度CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int N=5e4+5; int n,k.原创 2022-01-15 10:20:32 · 106 阅读 · 0 评论 -
【SSL2883】烽火传递【单调队列】
分析:单调队列dpdpdp fi=min{fj}+aif_i=min\{f_j\}+a_ifi=min{fj}+ai换了dequedequedeque写法 注意开始没有元素做下标 要添个000CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<queue>using namespace std;const int N=1e5+5;int n,m,f[N.原创 2022-01-14 16:58:52 · 72 阅读 · 0 评论 -
【POJ2823】Sliding Window【单调队列】
linklinklink分析:单调队列 换了种写法 用了dequedequedequeCODE:#include<iostream>#include<cstdio>#include<algorithm>#include<queue>using namespace std;const int N=1e6+5;int a[N],n,k;deque<int> q;void slide(char op[]){ for(int .原创 2022-01-14 15:53:38 · 107 阅读 · 0 评论 -
【51nod P1272】最大距离【堆】
linklinklink分析:小根堆 先处理最小的位置 用堆顶去减就是了CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int N=5e4+5;int n,ans,tmp;priority_queue<pair<int,int&g.原创 2022-01-14 15:05:50 · 103 阅读 · 0 评论 -
【51nod P2491】移掉K位数字【单调栈】
linklinklink分析:把小数字前移 大的就删掉 单调栈 注意删前导000 以及删不满kkk位CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<stack>#define reg registerusing namespace std;typedef long long ll;const int N=.原创 2022-01-14 14:12:54 · 87 阅读 · 0 评论 -
【洛谷UVA1619】Feel Good【单调栈】
linklinklink分析:单调栈枚举最小值aia_iai 找左边第一个比当前小的lil_ili 右边第一个比当前大的rir_iri 前缀和sumisum_isumi区间即[li+1,ri−1][l_i+1,r_i-1][li+1,ri−1] 和为sumr−suml−1sum_r-sum_{l-1}sumr−suml−1 对这个的乘积取maxmaxmax注意没有spjspjspj 要保证区间最短 还有一些奇怪的格式CODE:#include<iostream>.原创 2022-01-14 11:44:48 · 87 阅读 · 0 评论 -
【51nod P1279】扔盘子【单调栈】
linklinklink分析:用 aia_iai 表示到第 iii 层能通过的宽度 即最窄宽度每个盘子和这些宽度比较 如果刚好大于就可以落进 然后将这层poppoppopCODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<stack>#define reg registerusing namespace s..原创 2022-01-13 16:02:31 · 109 阅读 · 0 评论 -
【51nod P2500】后面第一个大于【单调栈】
linklinklink分析:单调栈倒着做 ansansans就是栈顶到第一个找出最大的距离CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<stack>#define reg registerusing namespace std;typedef long long ll;const int N=3e4+.原创 2022-01-13 09:18:56 · 121 阅读 · 0 评论 -
【Ybt OJ】[数据结构 第1章] 二叉堆
「「「数据结构」」」第111章 二叉堆目录:A.合并果子B.序列合并C.龙珠游戏D.工作安排A.A.A. 例题111 合并果子洛谷linklinklink分析:就是从小到大 不断累加 但你肯定不能 加一次 排一次序然后反手一个stlstlstl小根堆切掉了(CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include&l原创 2021-03-31 16:59:36 · 128 阅读 · 0 评论 -
【洛谷P7095】不离【贪心 堆】
linklinklink分析:单调性 显然二分aaa值根据题意 aaa值是比bbb值更重要的将aaa值 及bbb值排序 aaa值从小到大 bbb值从大到小 然后能穿就穿因为bbb值同时也可以帮你 穿上更多bbb值就是当前装备需要bbb值 减去 之前装备提供的bbb值总和然后开个priority_queuepriority\_queuepriority_queue维护下最小的bbb值即可CODE:#include<iostream>#include<cstring&g..原创 2021-07-18 21:27:36 · 75 阅读 · 0 评论 -
【Ybt OJ】[动态规划 第6章] 单调队列 [前半章]
「「「动态规划」」」第666章 单调队列(((前333题)))目录:A.滑动窗口B.粉刷木板C.耗费体力A.A.A. 例题111 滑动窗口洛谷linklinklink分析:原创 2021-07-07 20:02:16 · 110 阅读 · 0 评论 -
【10.28模拟赛T5】小B浇花【单调性】
分析:排序 只要构造一个单调递增的序列即可去模拟天数即可CODE:#include<iostream>#include<algorithm>#include<cstdio> using namespace std;int a[50005],qwq,n,ans;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+..原创 2020-10-28 20:48:04 · 200 阅读 · 0 评论 -
【POJ 2796】Feel Good【双向の单调栈】
感觉不错时限: 3000MS 内存限制: 65536K案例时间限制: 1000MS描述比尔正在为人类的情感发展一种新的数学理论。他最近的调查致力于研究好或坏的日子如何影响人们对某个时期的记忆。比尔最近提出了一个新想法,即为人类的每一天分配一个非负整数值。比尔称此价值为当日的情感价值。情感价值越大,日子越好。比尔建议,生命中某个时期的价值与给定时期中某天的情感价值之和成比例,再乘以该天中某天的最小情感价值。这种模式反映出,在一个非常糟糕的日子里,平均时期的良好状况可能会大大受损。现在,比尔正计原创 2020-08-12 21:37:11 · 424 阅读 · 0 评论 -
【POJ 3494】Largest Submatrix of All 1‘s【二维の单调栈】
所有1的最大子矩阵时限: 5000MS 内存限制: 131072K案件期限: 2000MS描述给定一个m × n(0,1)矩阵,所有1的所有子矩阵中哪个最大?通过最大的,我们是指子矩阵拥有最多的元素。输入项输入包含多个测试用例。每个测试用例始于米和Ñ(1≤ 米,Ñ上线≤2000)。然后,按行优先顺序在每行具有n个数字的m行上出现(0,1)-矩阵的元素。达到EOF后,输入结束。输出量对于每个测试用例,输出一行,其中包含所有1的最大子矩阵的元素数量。如果给定的矩阵全为0,则输出0。样本输入原创 2020-08-12 20:21:32 · 289 阅读 · 0 评论 -
【洛谷 CF817D】Imbalanced Array【单调栈优化】
题目描述原题You are given an array aa consisting of nn elements. The imbalance value of some subsegment of this array is the difference between the maximum and minimum element from this segment. The imbalance value of the array is the sum of imbalance values o原创 2020-08-12 15:48:47 · 266 阅读 · 0 评论 -
【POJ 2559】直方图中的最大矩形【单调栈】
直方图中的最大矩形时限: 1000MS 内存限制: 65536K描述直方图是由在公共基线对齐的一系列矩形组成的多边形。矩形的宽度相等,但高度可以不同。例如,左图显示了由高度为2、1、4、5、1、1、3、3的矩形组成的直方图,以矩形的宽度为单位:1通常,直方图用于表示离散分布,例如,文本中字符的频率。注意,矩形的顺序,即它们的高度,很重要。计算直方图中与公共基准线对齐的最大矩形的面积。右图显示了所描绘的直方图的最大对齐矩形。输入值输入包含几个测试用例。每个测试用例都描述一个直方图,并以整数n开头原创 2020-08-12 10:30:08 · 424 阅读 · 0 评论 -
【洛谷 P2569&HDU 3401】[SCOI 2010]股票交易【单调队列优化のDP】
题目描述最近 lxhgww 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律。通过一段时间的观察,lxhgww 预测到了未来 T 天内某只股票的走势,第 i 天的股票买入价为每股 AP i,第 i 天的股票卖出价为每股 BP i (数据保证对于每个 i,都有 AP i ≥BP i ),但是每天不能无限制地交易,于是股票交易所规定第 i 天的一次买入至多只能购买AS i 股,一次卖出至多只能卖出 BS i 股。另外,股票交易所还制定了两个规定。为了避免大家疯狂交易,股票交易所规原创 2020-08-12 10:10:55 · 435 阅读 · 0 评论 -
【SSL 2882】[POJ 3250]排队【单调栈模板】
排队Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescriptionn个人排成一条直线(一排),给出队伍中每个人的身高,每个人只能看到站在他右边且个头比他小没有被其他人挡住(跟他身高相同也会挡出他)的人。请求出所有人可以看到的人数之和。1<=N<=80,000Sample Input6 10374122Sample Output5分析:这道题其实就是单调栈的模板题CODE原创 2020-08-11 19:44:54 · 358 阅读 · 0 评论 -
【HDU 3530】子序列【双单调队列】
子序列时间限制:2000/1000 MS(Java /其他)内存限制:65536/32768 K(Java /其他)问题描述有一个整数序列。您的任务是找到满足以下条件的最长子序列:子序列的最大元素和最小元素之间的差不小于m且不大于k。输入值有多个测试用例。对于每个测试用例,第一行都有三个整数n,m和k。n是序列的长度,并且在[1,100000]范围内。m和k在[0,1000000]范围内。第二行具有n个整数,均在[0,1000000]范围内。继续到文件末尾。输出量对于每个测试用例,在一行上原创 2020-08-11 18:55:31 · 349 阅读 · 0 评论 -
【SSL 2521】数数【单调队列&前缀和】
2014年汕头市选拔赛普级组 数数Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription分析:这道题即前缀和+单调队列和这道假期差不多……其实就是先预处理前缀和+单调队列模板就可了……CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using原创 2020-08-11 10:49:36 · 205 阅读 · 0 评论 -
【洛谷 P1725】琪露诺【单调队列优化のDP】
题目描述原题在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子i时,她只移动到区间[i+l,i+r]中的任意一格。你问为什么她这么移动,这还不简单,因为她是笨蛋啊。每一个格子都有一个冰冻指数A[i],编号为0的格子冰冻指数为0。原创 2020-08-11 09:55:37 · 285 阅读 · 0 评论 -
【HDU 2191】珍惜现在 · 感恩生活【单调队列优化の多重背包】
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Problem Description急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一原创 2020-08-10 21:44:14 · 249 阅读 · 0 评论 -
【SSL 2884】假期【单调队列】
假期Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription经过几个月辛勤的工作,FJ决定让奶牛放假。假期可以在1…N天内任意选择一段(需要连续),每一天都有一个享受指数W。但是奶牛的要求非常苛刻,假期不能短于P天,否则奶牛不能得到足够的休息;假期也不能超过Q天,否则奶牛会玩的腻烦。FJ想知道奶牛们能获得的最大享受指数。Input第一行:N,P,Q.第二行:N个数字,中间用一个空格隔开,每个数都在longi原创 2020-08-10 19:42:41 · 270 阅读 · 0 评论 -
【SSL 2883】烽火传递【单调队列&DP】
烽火传递Time Limit:10000MS Memory Limit:512000KCase Time Limit:1000MSDescription烽火台又称烽燧,是重要的军事防御设施,一般建在险要或交通要道上。一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息;夜晚燃烧干柴,以火光传递军情,在某两座城市之间有 n 个烽火台,每个烽火台发出信号都有一定代价。为了使情报准确地传递,在连续 m 个烽火台中至少要有一个发出信号。请计算总共最少花费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确传原创 2020-08-10 15:06:26 · 356 阅读 · 0 评论 -
【洛谷 P1886】[POJ 2823]滑动窗口【单调队列】
题目描述有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。例如:The array is [1,3,-1,-3,5,3,6,7] and k = 3。输入格式输入一共有两行,第一行有两个正整数 n,k。 第二行 n 个整数,表示序列 a输出格式输出共两行,第一行为每次窗口滑动的最小值第二行为每次窗口滑动的最大值输入输出样例输入 #18 31 3 -1 -3 5 3 6 7输出 #1-1 -原创 2020-08-10 11:51:36 · 282 阅读 · 0 评论