秋实大哥去打工

Time Limit: 1 Sec  Memory Limit: 256 MB

题目连接

http://acm.uestc.edu.cn/#/contest/show/59

Description

天行健,君子以自强不息。地势坤,君子以厚德载物。

天天过节的秋实大哥又要过节了,于是他要给心爱的妹子买礼物。但由于最近秋实大哥手头拮据,身为一个男人,他决定去打工!

秋实大哥来到一家广告公司。现在有n块矩形墙从左至右紧密排列,每一块高为Hi,宽为Wi。

公司要求秋实大哥找出一块最大的连续矩形区域,使得公司可以在上面贴出最大的海报。

Input

第一行包含一个整数n,表示矩形墙的个数。

接下来n行,每行有两个整数Wi,Hi,表示第i块墙的宽度和高度。

1≤n≤200000,保证Wi,Hi以及最后的答案<231。

Output

最大的连续矩形的面积。

Sample Input

3
3 4
1 2
3 4

Sample Output

14

HINT

题意

题解:

初看这道题,啊好难啊

其实仔细思考一下很简单的
首先我们离散化一下下,然后我们再随便搞一搞
用两个单调栈维护以这个矩形为高最多往左和右延伸多少~
然后随便搞一搞就好了

代码:

//qscqesze
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#include <stack>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 200001
#define mod 10007
#define eps 1e-9
//const int inf=0x7fffffff;   //无限大
const int inf=0x3f3f3f3f;
/*
inline ll read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
int buf[10];
inline void write(int i) {int p = 0;if(i == 0) p++;else while(i) {buf[p++] = i % 10;i /= 10;}for(int j = p-1; j >=0; j--) putchar('0' + buf[j]);printf("\n");
}
*/
//**************************************************************************************
using namespace std;
long long a[maxn],b[maxn],ans;
int r[maxn],l[maxn];
stack<int> s;
int main()
{int n;scanf("%d",&n);a[0]=a[n+1]=-1;for(int i=1;i<=n;i++){scanf("%d",&b[i]);b[i]+=b[i-1];scanf("%lld",&a[i]);}s.push(0);int p=0;for(int i=1;i<=n;i++){for(p=s.top();a[p]>=a[i];p=s.top())s.pop();l[i]=p+1;s.push(i);}while(!s.empty())s.pop();s.push(n+1);for(int i=n;i>0;i--){for(p=s.top();a[p]>=a[i];p=s.top())s.pop();r[i]=p-1;s.push(i);}for(int i=1;i<=n;i++)ans=max(ans,((b[r[i]]-b[i-1])+(b[i-1]-b[l[i]-1]))*a[i]);printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/qscqesze/p/4427282.html

2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈相关推荐

  1. 2015 UESTC 数据结构专题N题 秋实大哥搞算数 表达式求值/栈

    秋实大哥搞算数 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1074 Des ...

  2. 2015 UESTC 数据结构专题H题 秋实大哥打游戏 带权并查集

    秋实大哥打游戏 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 Descr ...

  3. 2015 UESTC 数据结构专题A题 秋实大哥与小朋友 线段树 区间更新,单点查询,离散化...

    秋实大哥与小朋友 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 Desc ...

  4. 2015 UESTC 数据结构专题D题 秋实大哥与战争 变化版本的线段树,合并区间,单点查询...

    D - 秋实大哥与战争 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 D ...

  5. cdoj 2015数据结构专题:D - 秋实大哥与战争

    男儿何不带吴钩,收取关山五十州. 征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏. 秋实大哥命令所有士兵从左到右排成了一行来抵挡敌人的攻击. 敌方每一次会攻击一个士兵,这个士兵就会阵亡, ...

  6. 2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索

    邱老师降临小行星 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 Des ...

  7. UESTC_秋实大哥与花 2015 UESTC Training for Data StructuresProblem B

    B - 秋实大哥与花 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  8. UESTC_秋实大哥与快餐店 2015 UESTC Training for Data StructuresProblem C

    C - 秋实大哥与快餐店 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Sub ...

  9. UESTC_秋实大哥下棋 2015 UESTC Training for Data StructuresProblem I

    I - 秋实大哥下棋 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

最新文章

  1. 关于yum库的相关问题
  2. AI 天气预报准确度高于气象台,一张 GPU 1秒预测未来 90 分钟天气
  3. 得到当前数据库中所有用户表信息
  4. SQL Server复制需要有实际的服务器名称才能连接到服务器
  5. display:inline、block、inline-block
  6. PHP与SQL数据库交互中文乱码怎么办
  7. 【数据平台】基于pymysql库python连接mysql
  8. [云炬创业管理笔记]第二章成为创业者讨论2
  9. iOS开发之普通网络异步请求与文件下载方法
  10. 如何突破科研瓶颈?如何与导师自在相处?微软研究员们的读博心得
  11. uc for linux,在uClinux文件系统中增加应用程序
  12. tiktok跨境出海?
  13. Mac/IOS Xcode Instruments资源统计及自动化相关
  14. 高等数学在计算机的应用论文,(高等数学论文计算机软件及应用.doc
  15. H5API ---(Web存储-拖拽事件-通信-websocket-geolocation)
  16. 微调电位器命名规则_电位器
  17. 全球及中国冻干菠萝行业市场运行模式及未来发展前景分析报告2022-2028年
  18. java 公共方法是什么意思,在java中公共/私有/其他方法的含义是什么意思?
  19. 学习笔记:图像分割之深度学习场景分割(2015开始)综述之前是手工特征
  20. linux查看进程grep工作组,Linux下查看一个进程打开了哪...-linux 如何找到进程的工作目录...-使用 grep 恢复误删的文本文件_169IT.COM...

热门文章

  1. android 日期时间类,Android 时间与日期操作类
  2. linux桌面显示温度,请问ubuntu下有没有什么桌面小控件现实显卡温度cpu使用率之类的...
  3. 计算机体系结构 -- 第一章3 -- 设计的定量4个原则
  4. 一文带你学会 UML--用例图
  5. [链表]---链表相邻元素翻转
  6. [机器学习] PMML实现模型上线
  7. 现代分层、聚集聚类算法_分层聚类:聚集性和分裂性-解释
  8. sublime txt常用插件推荐
  9. Rolling Update - 每天5分钟玩转 Docker 容器技术(140)
  10. 对传统视觉惯性的颠覆