51nod1437 迈克步】的更多相关文章

傻叉单调栈 #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> using namespace std; #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) #define clr(x,c) memset(x,c,sizeof(x)) int r…
考虑一个点作为最小值的区间$[L[i], R[i]]$ 那么这个区间的所有含$i$的子区间最小值都是$v[i]$ 因此,用单调栈求出$L[i], R[i]$后,对$R[i] - L[i] + 1$这个长度打一个$v[i]$的标记 之后,统计后缀最大值就能得出答案 注:不加输出优化会$T$ 复杂度$O(n)$,暂居$rk1$ #include <cstdio> #include <iostream> using namespace std; extern inline char gc…
1437 迈克步 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  取消关注 有n只熊.他们站成一排队伍,从左到右依次1到n编号.第i只熊的高度是ai. 一组熊指的队伍中连续的一个子段.组的大小就是熊的数目.而组的力量就是这一组熊中最小的高度. 迈克想知道对于所有的组大小为x(1 ≤ x ≤ n)的,最大力量是多少. Input 单组测试数据. 第一行有一个整数n (1 ≤ n ≤ 2×10^5),表示熊的数目. 第二…
利用单调栈高效的求出,一个数a[i]在哪个区间内可作为最小值存在. 正向扫描,求出a[i]可做为最小值的区间的左边界 反向扫描,求出a[i]可作为最小值的区间的右边界 r[i] - l[i] +1 就是a[i]可作为最小值的区间的 最大长度 我们知道:长度为len的区间,包含长度为len-1的区间 所以最后,需要逆向[确保无后效性]更新答案数组,保留最大值. #include<stdio.h> #include<math.h> #include<cstring> #in…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1437 题意: 思路: 单调栈题.求出以每个数为区间最大值的区间范围即可. #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<vector> #include<stack> #include<…
题目链接 先利用单调栈or其他方法找到一个元素g[i]作为最小值的区间,设为[L, R]. 那么长度为R-L+1的组的最大值ans=max(ans,g[i]).但是有一个问题: 比如6这个元素是长度为3的组的最大值,长度为2的最大值之前更新到为4,那么实际上长度为2的最大值是多少呢? 自然是6,因为肯定6存在于长度为2的组. 于是:求得所有元素作为最小值的组的长度后,更新每个长度的最大值.然后从长度最大的组往长度小的刷新,因为:能在长度大的做最小元素,也能在长度小的组做最小元素. 所以得到ans…
有n只熊.他们站成一排队伍,从左到右依次1到n编号.第i只熊的高度是ai. 一组熊指的队伍中连续的一个子段.组的大小就是熊的数目.而组的力量就是这一组熊中最小的高度. 迈克想知道对于所有的组大小为x(1 ≤ x ≤ n)的,最大力量是多少. Input 单组测试数据. 第一行有一个整数n (1 ≤ n ≤ 2×10^5),表示熊的数目. 第二行包含n个整数以空格分开,a1, a2, ..., an (1 ≤ ai ≤ 10^9),表示熊的高度. Output 在一行中输出n个整数,对于x从1到n…
胡小兔的 OI 日志 3 (2017.9.1 ~ 2017.10.11) 标签: 日记 查看最新 2017-09-02 51nod 1378 夹克老爷的愤怒 | 树形DP 夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织起来暴力抗租. 夹克老爷很愤怒,他决定派家丁常驻村中进行镇压. 诺德县 有N个村庄,编号0 至 N-1,这些村庄之间用N - 1条道路连接起来. 家丁都是经过系统训练的暴力机器,每名家丁可以被派驻在一个村庄,并镇压当前村庄以及距离该村庄不超过K段道路的村庄.…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1437 1437 迈克步 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 有n只熊.他们站成一排队伍,从左到右依次1到n编号.第i只熊的高度是ai. 一组熊指的队伍中连续的一个子段.组的大小就是熊的数目.而组的力量就是这一组熊中最小的高度. 迈克想知道对于所有的组大小为x(1 ≤ x ≤ n…