单调栈求每个数在哪些区间是最值的经典操作. 把数一个一个丢进单调栈,弹出的时候[st[top-1]+1,i-1]这段区间就是弹出的数为最值的区间. poj2796 弹出的时候更新答案即可 #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<algorithm> #include<queue> #include<cmath…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1215 题意: 思路: 计算出以第i个数为最大值的区间范围,l_max[i]为左端点,r_max[i]为右端点,计算最小值同理可得. 计算出了区间范围,就可以计算出每个数对于答案的贡献值. #include<iostream> #include<algorithm> #include<cstring> #include<cstdio>…
若一个数在一段区间内作为最大值存在,那么答案应该加上这个数 若一个数在一段区间内作为最小值存在,那么答案应该减去这个数 所以我们利用单调栈,高效求出a[i]在哪个区间内作为最大/最小值存在,从而确定,加/减多少次a[i],最终得到答案 #include<stdio.h> #include<math.h> #include<cstring> #include<stack> #include<iostream> #include<algorit…
Feel Good Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 20408   Accepted: 5632 Case Time Limit: 1000MS   Special Judge Description Bill is developing a new mathematical theory for human emotions. His recent investigations are dedicated…
Feel Good 题意:给你一个非负整数数组,定义某个区间的参考值为:区间所有元素的和*区间最小元素.求该数组中的最大参考值以及对应的区间. 比如说有6个数3 1 6 4 5 2 最大参考值为6,4,5组成的区间,区间最小值为4,参考值为4*(6+5+4)=60 数据范围1<=n<=100000:单调栈做法:对于一个区间,我们需要知道区间的最小值,并且是在出栈的时候更新最优解:这时就可以想到当我们维护的是一个单调递增的栈时,栈顶元素由于当前入栈的元素逼栈顶元素小而要出栈时,这个栈顶元素所代表…
题意: 析:利用单调栈,维护一个单调递增的栈,首先在最低的平台开始,每次向两边进行扩展,寻找两边最低的,然后不断更新宽度. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream>…
因为涉及到对模板的理解,所以就着代码看会好一些. 让那些坚决不颓代码的人受委屈了. 我是对着wzz的板子默写的,可能不完全一样啊. 还有代码注释里都是我个人的理解,不保证正确,但欢迎指正. 可以有选择的浏览,单调栈的那个非模板部分可以不看,自己想. 因为写的稍微有点详细所以在网页上极丑,粘到自己gedit上看吧. #include<cstdio> #include<algorithm> #define int long long ]; ],y[],sa[],rk[],l=,c[],…
Feel Good Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 8753   Accepted: 2367 Case Time Limit: 1000MS   Special Judge Description Bill is developing a new mathematical theory for human emotions. His recent investigations are dedicated…
Feel Good Bill is developing a new mathematical theory for human emotions. His recent investigations are dedicated to studying how good or bad days influent people's memories about some period of life. A new idea Bill has recently developed assigns a…
Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26549   Accepted: 8581 Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal wi…