標籤:int() iostream bootstrap update addclass tns .net stat queue
【問題描寫敘述】
近期,afy決定給TOJ印刷廣告,廣告牌是刷在城市的建築物上的。城市裡有緊靠著的N個建築。
afy決定在上面找一塊儘可能大的矩形放置廣告牌。我們如果每一個建築物都有一個高度。
從左至右給出每一個建築物的高度H1,H2…HN,且0<Hi<=1,000,000,000,而且我們如果每一個建築物的寬度均為1。
要求輸出廣告牌的最大面積。
【輸入檔案】
輸入檔案 ad.in 中的第一行是一個數n (n<= 400,000)
第二行是n個數,分別表示每一個建築物高度H1,H2…HN,且0<Hi<=1,000,000,000。
【輸出檔案】
輸出檔案 ad.out 中一共同擁有一行,表示廣告牌的最大面積。
【輸入例子】
6
5 8 4 4 8 4
【輸出例子】
24
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define maxn 400000 + 10int L[maxn], R[maxn];int pos[maxn];int a[maxn];int n;void get_left(){ int head = 1, tail = 0; for(int i = 1; i <= n; i++) { while(head <= tail && a[pos[tail]] >= a[i]) tail--; L[i] = i - pos[tail] - 1; pos[++tail] = i; }}void get_right(){ int head = 1, tail = 0; pos[tail] = n + 1; for(int i = n; i >= 1; i--) { while(head <= tail && a[pos[tail]] >= a[i]) tail--; R[i] = pos[tail] - i - 1; pos[++tail] = i; }}int main(){ while(~scanf("%d", &n)) { memset(L, 0, sizeof L); memset(R, 0, sizeof R); for(int i = 1; i <= n; i++) scanf("%d", a + i); get_left(); get_right(); long long ans = -1; for(int i = 1; i <= n; i++) ans = max(ans, ((long long)L[i] + R[i] + 1) * a[i]); printf("%I64d\n", ans); } return 0;}/*65 8 4 4 8 4*/
閱讀全文 著作權聲明:本文為博主原創文章,未經博主同意不得轉載。
舉報
0條評論
-
-
相關文章推薦
-
NKOJ 2150 【單調隊列】廣告印刷 輸出用cout,不然用lld和I64d都會wa。
對於每個建築物,要知道往左到哪一個建築第一個高度比它低,知道往右走哪一個建築物第一個高度比它低。能夠用dp,也能夠用單調隊列。
首先從左往右...
- yskyskyer123
- 2016-04-12 11:28
- 460
-
單調隊列 原文地址:單調隊列良弓藏keyword隊列,合并果子,窗戶,廣告印刷。最長XX子序列,志願者選拔,動態規劃,烽火傳遞本文單調隊列,望文生義,就是指隊列中的元素是單調的。如:{a1,a2,a...
- jiqiujia
- 2014-01-06 16:30
- 363
-
廣告印刷 【題目描寫敘述】 近期。afy決定給TOJ印刷廣告。廣告牌是刷在城市的建築物上的,城市裡有緊靠著的N個建築。afy決定在上面找一塊儘可能大的矩形放置廣告牌。我們如果每一個建築物都有一個高度。從左至右給出每...
- qq_31640513
- 2017-02-05 18:43
- 184
-
hdu 3530 單調隊列水題 單調隊列水題
- zxf654073270
- 2015-01-14 18:24
- 304
-
uva 1169 - Robotruck(dp+單調隊列) 題目連結:uva 1169 - Robotruck題目大意:給出W和n。W表示機器人的限載重量,
-
NKOJ 2150 廣告印刷 單調隊列 【單調隊列】廣告印刷Time Limit:10000MS? Memory Limit:65536KTotal Submit:296 Accepted:108?Case Time Limit:10...
- zp___waj
- 2016-06-15 06:56
- 458
-
Uva 10305 - Ordering Tasks 拓撲排序基礎水題 隊列和dfs實現 今天剛學的拓撲排序。大概搞懂後發現這題是赤裸裸的水題。於是按自己想法敲了一遍,用queue做的,也就是Kahn演算法,複雜度o(V+E),調完交上去,WA了。
。。於是
- runfeel
- 2013-07-12 00:35
- 417
-
Light OJ 1084 線段樹+dp or(單調隊列+dp) 水題 2B錯誤,線段樹開了2倍空間。 檢查到死。改成4倍空間直接AC。太傷了。線段樹太弱了。
線段樹:#include #include #include using namespace std...
- c3568
- 2013-06-12 18:03
- 1072
-
uva 1427 - Parade(dp+單調隊列) 題目連結:uva 1427 - Parade<span st
-
單調隊列之廣告印刷問題 問題:有n幢建築,其高度分別為H1,...,Hn,其寬度為1。且這些建築緊靠在一起,當前須要在這些建築上刷一個很大的矩形廣告,求矩形廣告的最大值。?先翻譯成數學題,給定n個正數的序列。定義區...
- wdq347
- 2013-06-29 17:04
- 1289
-
-
Dikea‘s Blog +關注
-
原創
-
270
-
粉絲
-
12
-
喜歡
-
0
- MYSQL索引入門
- Python處理excel資料
- 圖論總結模板
- 線段樹模板
很多其它文章
線上課程
-
utm_source=blog7" target="_blank">
-
【直播】機器學習&資料採礦7周實訓--韋瑋
-
utm_source=blog7" target="_blank">
-
【套餐】系統整合專案管理project師順利通關--徐朋
收藏助手 不良資訊舉報
<html>