麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

廣告印刷

2019-11-14 08:46:28
字體:
來源:轉載
供稿:網友

【題目描述】 最近,afy決定給TOJ印刷廣告,廣告牌是刷在城市的建筑物上的,城市里有緊靠著的N個建筑。afy決定在上面找一塊盡可能大的矩形放置廣告牌。我們假設每個建筑物都有一個高度,從左到右給出每個建筑物的高度H1,H2…HN,且1<=Hi<=1,000,000,000,并且我們假設每個建筑物的寬度均為1。要求輸出廣告牌的最大面積。 【輸入格式】 第一行是一個數n (n<= 400,000 ) 第二行是n個數,分別表示每個建筑物高度H1,H2…HN,且1<=Hi<=1,000,000,000。 【輸出格式】 輸出文件 ad.out 中一共有一行,表示廣告牌的最大面積。 【 樣例輸入】 6 5 8 4 4 8 4 【樣例輸出】 24 【分析】 首先可以想到,在廣告覆蓋的樓房中,最矮的樓房(并不是指所有樓房中最矮的那個)一定被廣告完全覆蓋了。所以可以枚舉最矮的樓房,求出向左、向右分別可以延伸多遠(即大于等于該樓房),然后打擂臺即可。 用單調隊列預處理向左、向右分別延伸的距離可以優化程序。

#include<iostream>#include<cstdio>using namespace std;#define MAXN 400000#define LL long longint h[400010];int n;int Queue[400010];int L[400010],R[400010];int main(){ cin>>n; int i; for (i=1;i<=n;i++) cin>>h[i]; h[0]=h[n+1]=-1; Queue[0]=0; int Head=0,Tail=1; for (i=1;i<=n;i++) { while (Head<Tail && h[i]<=h[Queue[Tail-1]]) Tail--; L[i]=i-Queue[Tail-1]-1; Queue[Tail++]=i; } Queue[0]=n+1; Head=0,Tail=1; for (i=n;i>=1;i--) { while (Head<Tail && h[i]<=h[Queue[Tail-1]]) Tail--; R[i]=Queue[Tail-1]-i-1; Queue[Tail++]=i; } long long MaxArea=0; for (i=1;i<=n;i++) { long long Area=(L[i]+R[i]+1)*h[i]; if (Area>MaxArea) MaxArea=Area; } cout<<MaxArea;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91精品国产91 | 成人免费观看av | 国产www免费 | 一区二区三区视频播放 | 一分钟免费观看完整版电影 | 国产精品99久久久久久董美香 | 精品一区二区在线观看视频 | 欧洲成人精品 | 成人短视频在线播放 | 欧美一级片 在线播放 | 中文字幕专区高清在线观看 | 国产在线免 | 免费国产不卡午夜福在线 | 羞羞的视频免费在线观看 | 免费网站看毛片 | 涩涩屋av | 激情视频在线播放 | 午夜视频在线观看免费视频 | 久久久亚洲欧美综合 | 国产91大片 | 91在线色| 色就操| 亚洲一区二区三区在线免费观看 | 香蕉国产片 | 天天夜碰日日摸日日澡性色av | 成人午夜视频免费在线观看 | 久久久久久久久久网 | 免费黄色入口 | 国产精品成人亚洲一区二区 | 国产一区二区国产 | 国产精品看片 | 成年人黄色免费电影 | 久久精品re | 久草干 | av国产免费 | 免费a级毛片大学生免费观看 | 欧美成人午夜 | 麻豆视频国产在线观看 | av播播| 女人裸体让男人桶全过程 | 久久久久久久黄色片 |