hdu 1506 Largest Rectangle in a Histogram 单调栈
来源:互联网 发布:关于网络诈骗的案例 编辑:程序博客网 时间:2024/05/15 18:42
题意:求最大子矩阵面积
单调栈处理到当前位置为止的最大矩阵高度(记录下标),若当前的高度小于栈顶则不断更新面积,并入栈(栈顶元素最大)。
#include <map>#include <set>#include <queue>#include <stack>#include <vector>#include <string>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;#define lson l, mid, rt << 1#define rson mid + 1, r, rt << 1 | 1#define ls rt << 1#define rs rt << 1 | 1#define pi acos(-1.0)#define eps 1e-8#define asd puts("sdfsdfsdfsdfsdfsdf");typedef long long ll;typedef __int64 LL;const int inf = 0x3f3f3f3f;const int N = 100010;ll r[N];ll ans, tmp;ll s[N], top;int main(){ int n; while( ~scanf("%d", &n) && n ) { for( int i = 1; i <= n; ++i ) scanf("%lld", &r[i]); ans = r[n+1] = -1; top = -1; for( int i = 1; i <= n+1; ++i ) { if( top == -1 || r[s[top]] < r[i] ) { s[++top] = i; } else if( r[s[top]] > r[i] ) { LL x; while( top > -1 && r[s[top]] > r[i] ) { tmp = ( i - s[top] ) * r[s[top]]; ans = max( ans, tmp ); x = s[top]; top--; } s[++top] = x; r[x] = r[i]; } } printf("%I64d\n", ans); } return 0;}
0 0
- HDU 1506 Largest Rectangle in a Histogram(单调栈)
- hdu 1506 Largest Rectangle in a Histogram(单调栈)
- HDU 1506 Largest Rectangle in a Histogram 单调栈
- hdu 1506 Largest Rectangle in a Histogram 单调栈
- HDU 1506 Largest Rectangle in a Histogram(单调栈)
- HDU 1506 Largest Rectangle in a Histogram (单调栈)
- HDU-1506 Largest Rectangle in a Histogram(单调栈)
- hdu 1506 Largest Rectangle in a Histogram DP 单调队列
- hdu 1506 Largest Rectangle in a Histogram 单调队列
- HDU 1506 Largest Rectangle in a Histogram(单调队列)
- hdoj 1506 Largest Rectangle in a Histogram 【单调栈】
- HDOJ 1506 Largest Rectangle in a Histogram(单调栈)
- POJ 2559 / HDU 1506 / LightOJ 1083 Largest Rectangle in a Histogram (单调栈)
- hdu 1506 Largest Rectangle in a Histogram(单调栈||dp)
- HDU 1506 Largest Rectangle in a Histogram(DP·单调栈)
- hdu - 1506 - Largest Rectangle in a Histogram(dp / 单调栈)
- HDU-1506 (POJ-2599) Largest Rectangle in a Histogram (单调栈)
- HDU 1506 Largest Rectangle in a Histogram(最大矩形面积、单调栈)
- 面试题6:使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
- Spring2.5学习3.4_让Spring自动扫描和管理Bean
- 黑马程序员——IO流:字节流,字符流及键盘录入
- lua 点跟冒号的区别
- WCF医院管理系统技术解析(六)体检登记(五)对病人设置体检项目
- hdu 1506 Largest Rectangle in a Histogram 单调栈
- HDU Strange fuction(二分+精度控制)
- 最长回文字串的提取(相当精简!)
- 解决CDLinux在笔记本电脑上启动花屏问题
- MSDK的接入心得!!抓狂中。。。。。
- 在github上关注的开源游戏服务器引擎
- lua递归函数的编写,为了解决一个游戏当中遇到的复杂问题
- android-async-http开源框架的详细解释(附源码HTTP)
- 5.1-2