ZOJ 2422- Terrible Sets-单调栈
来源:互联网 发布:家庭网络组建 编辑:程序博客网 时间:2024/06/05 15:17
http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=40261
题面真是神tm难懂。。。。。给你n个连续的矩形,求组合成的最大矩形面积
直接单调栈,按套路扫一遍即可
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue>#include <map>#include <set>#include <vector>using namespace std;long long max (long long a,long long b){return a<b?b:a;}struct node{long long l;long long r;long long h;};node tm[100005];long long top;long long ans;void insert(node tt){while(top&& tm[top].h>tt.h){tm[top-1].r=tm[top].r;tt.l=tm[top].l;node t=tm[top];//有时候需要更新 ans=max(ans,tm[top].x);ans=max(ans,t.h*(t.r-t.l));top--;}tm[++top]=tt;}long long aa[50005];long long sum[50005];long long h[50005];int main(){long long n,i;while(scanf("%lld",&n)!=EOF){ if (n==-1) break; for (i=1;i<=n;i++) scanf("%lld%lld",&aa[i],&h[i]); for (i=1;i<=n;i++) sum[i]=sum[i-1]+aa[i];ans=top=0;node tt;for (i=1;i<=n;i++){ tt.h=h[i];tt.l=sum[i-1];tt.r=sum[i];insert(tt);}while(top){tm[top-1].r=tm[top].r;node t=tm[top];ans=max(ans,t.h*(t.r-t.l));top--;}printf("%lld\n",ans);}return 0;}
0 0
- ZOJ 2422- Terrible Sets-单调栈
- poj2082 Terrible Sets 单调栈
- POJ2082---Terrible Sets(单调栈)
- Terrible Sets *---* 单调栈解决问题
- POJ2082 Terrible Sets [DP 单调栈]
- POJ 2082 Terrible Sets(单调栈)
- POJ-2082 Terrible Sets (单调栈)
- POJ 2082 Terrible Sets 单调栈
- poj2082(Terrible Sets单调栈入门题)
- 【POJ】2082 - Terrible Sets(单调栈)
- POJ 2082 Terrible Sets(单调栈)
- poj_2082 Terrible Sets(单调栈)
- poj 2082 Terrible Sets(单调栈)
- POJ 2082 Terrible Sets 单调栈基础
- POJ2082 Terrible Sets(单调栈)
- poj 2082 Terrible Sets(单调栈)
- poj 2082 Terrible Sets【单调栈】
- poj 2082 Terrible Sets (单调栈)
- 杭电 2025 (折线分割平面)
- 算法的概念与特性
- 模拟实现通讯录-动态的方法
- 八皇后问题
- 2016百度之星资格赛 Problem B
- ZOJ 2422- Terrible Sets-单调栈
- 正则表达式
- 开源爬虫框架各有什么优缺点?
- HTML
- 今天吧之前的页面变成了右滑
- Spring中bean的生命周期
- poi 创建 Excel
- 130.Binary Tree Postorder Traversal
- android listview 异步加载图片并防止错位