![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调栈
文章平均质量分 62
EMber _
人但有追求,世界亦会让路。
展开
-
JZOJ4848 永恒的契约
Description宅邸迅速的燃烧着,必须带贝蒂走出禁书库!凭着感觉,又一次直接找到禁书库的门。 “你,是那个人嘛?”400年了,当初圣域建立结界时没有进入圣域,被伤了心的人工精灵贝蒂,与强欲魔女签订契约,守护宅邸的禁书库,直至“那个人”的到来,那个人会解开贝蒂的心结。 “我不是那个什么人,但我会成为你唯一的人。我会给你幸福!” 精灵与人签订契约,从此相依为命。这便是,永恒的契约。宅邸里,罗原创 2016-11-03 15:31:09 · 409 阅读 · 0 评论 -
bzoj1657
明显求个l[i],r[i],一开始想用二分,结果一直WA,以为自己二分打错了,想用lowerbound结果一看STL的解释必须是上升序列。。那就用单调站来维护咯。。#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(in原创 2017-03-05 09:47:43 · 227 阅读 · 0 评论 -
bzoj1660
分析:单调栈。。直接计算最后的贡献就会好算很多,不要单独算c,不然想半天想不出来。。#include<iostream> #include<cstdio> using namespace std; int n,top,a[80001],s[80001]; long long ans; int main() { scanf("%d",&n); for(i原创 2017-03-06 22:40:25 · 192 阅读 · 0 评论 -
bzoj3039玉蟾宫
分析:这题一开始以为原题。。51nod有一道求最大子矩阵和的方法,但是n^3,这题虽然要求弱了点,但是时间复杂度要求比较高,所以一开始想法是枚举矩阵的顶,然后二分出向左向右最长扩展距离,然后往下扫,但是这样log^2感觉会超。。后来发现单调栈可以直接做。。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#d原创 2017-04-07 09:14:29 · 251 阅读 · 0 评论 -
JZOJ5242【GDOI2018模拟8.8】矩阵
Description给出一个n*m 的01 矩阵,求其中有多少个连续子矩阵,使得其面积大于等于k,且其中不包含1。Input第一行为用空格隔开的三个整数n, m, k。分别表示矩阵的行数,列数和子矩阵的最小面积。 接下来的n 行每行为用空格隔开的m 个整数,为题目中给出的矩阵。Output输出一行一个整数,为满足条件的子矩阵个数。Sample Input2 4 3 1 0 0 0 1 1 0原创 2017-08-09 08:22:44 · 761 阅读 · 0 评论 -
bzoj2086[Poi2010]Blocks 单调栈
题意:给出N个正整数a[1..N],再给出一个正整数k,现在可以进行如下操作:每次选择一个大于k的正整数a[i],将a[i]减去1,选择a[i-1]或a[i+1]中的一个加上1。经过一定次数的操作后,问最大能够选出多长的一个连续子序列,使得这个子序列的每个数都不小于k。 总共给出M次询问,每次询问给出的k不同,你需要分别回答。 因为操作次数不限,因此若一段区间平均值超过K,即为一组合法解 将A原创 2017-10-06 16:05:57 · 250 阅读 · 0 评论