2016夏季练习——单调栈
2016-07-21 18:35
295 查看
来源:HDU1506
串的问题有毒啊
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
using namespace std;
typedef long long LL;
int n;
const int MAXN = 100000+10;
const int INF = 0x3f3f3f3f;
LL h[MAXN];
LL l[MAXN],r[MAXN];
//l,r用来找出左边右边比自己大的最远的数位置
LL ans;
int main(){
while(scanf("%d",&n)!=EOF&&n){
for(int i=1;i<=n;i++)
{
scanf("%lld",h+i);
}
l[1]=1;
r
=n;
// cout<<"start: "<<endl;
// cout<<"now it's l"<<endl;
for(int i=2;i<=n;i++){
int t=i;
while(t>1&&h[i]<=h[t-1]) t=l[t-1];//节约时间,不要直接向前推
l[i]=t;
}
// cout<<"now it's r"<<endl;
for(int i=n-1;i>=1;i--){
int t=i;
while(t<n&&h[i]<=h[t+1]) t=r[t+1];//同理
r[i]=t;
}
ans=-INF;
for(int i=1;i<=n;i++){
// cout<<"s"<<i<<"= "<<(r[i]-l[i]+1)*h[i]<<endl;
ans = max(ans,(r[i]-l[i]+1)*h[i]);
}
cout<<ans<<endl;
}
return 0;
}
串的问题有毒啊
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
using namespace std;
typedef long long LL;
int n;
const int MAXN = 100000+10;
const int INF = 0x3f3f3f3f;
LL h[MAXN];
LL l[MAXN],r[MAXN];
//l,r用来找出左边右边比自己大的最远的数位置
LL ans;
int main(){
while(scanf("%d",&n)!=EOF&&n){
for(int i=1;i<=n;i++)
{
scanf("%lld",h+i);
}
l[1]=1;
r
=n;
// cout<<"start: "<<endl;
// cout<<"now it's l"<<endl;
for(int i=2;i<=n;i++){
int t=i;
while(t>1&&h[i]<=h[t-1]) t=l[t-1];//节约时间,不要直接向前推
l[i]=t;
}
// cout<<"now it's r"<<endl;
for(int i=n-1;i>=1;i--){
int t=i;
while(t<n&&h[i]<=h[t+1]) t=r[t+1];//同理
r[i]=t;
}
ans=-INF;
for(int i=1;i<=n;i++){
// cout<<"s"<<i<<"= "<<(r[i]-l[i]+1)*h[i]<<endl;
ans = max(ans,(r[i]-l[i]+1)*h[i]);
}
cout<<ans<<endl;
}
return 0;
}
相关文章推荐
- Eclipse juno 中安装 JBoss Tools,集成Hibernate
- PC版模块滚动不显示滚动条效果
- android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)
- BadgeView微信消息数字提醒
- gerrit搭建
- 部署安装Mirantis OpenStack Fuel 9.0
- Power of Cryptography
- eclipse 常用快捷键
- Spring相关名词(0)
- 2016暑假多校合练第二场Multi-University Training Contest 2 1005 Eureka
- 【行业交流】2016 TiD质量竞争力大会——移动互联网测试到质量的转变之路
- Redis Getshell自动化实践之webshell
- Linux内核强制使用自配置的cmdline
- HDU1563 HDU2095 Find your present!【密码】
- javaMail邮件发送
- ToggleButton的使用
- understand试用笔记一阅读VS2010项目
- 用Hibernate Tools生成Hibernate Mapping映射文件
- 2016 Multi-University Training Contest 2 Acperience(一直WA的小伙伴可以看看)
- 学习《spring 3.x企业应用开发实战》之Spring对DAO的支持