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

首頁 > 學院 > 開發(fā)設計 > 正文

51Nod - 1102 單調棧

2019-11-14 12:17:22
字體:
來源:轉載
供稿:網(wǎng)友

題意:

有一個正整數(shù)的數(shù)組,化為直方圖,求此直方圖包含的最大矩形面積。例如 2,1,5,6,2,3,對應的直方圖如下:面積最大的矩形為5,6組成的寬度為2的矩形,面積為10。Input
第1行:1個數(shù)N,表示數(shù)組的長度(0 <= N <= 50000)第2 - N + 1行:數(shù)組元素A[i]。(1 <= A[i] <= 10^9)Output
輸出最大的矩形面積Input示例
6215623Output示例
10

思路:

單調棧的模板題,枚舉最低點,然后找到左右的邊界。

代碼:

#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 5e4 + 10;ll a[MAXN];int l[MAXN], r[MAXN];int main() {    int n;    scanf("%d", &n);    for (int i = 1; i <= n; i++)        scanf("%I64d", &a[i]);    stack <int> sta;    for (int i = 1; i <= n; i++) {        while (!sta.empty() && a[sta.top()] >= a[i]) sta.pop();        l[i] = sta.empty() ? 0 : sta.top();        sta.push(i);    }    while (!sta.empty()) sta.pop();    for (int i = n; i >= 1; i--) {        while (!sta.empty() && a[sta.top()] >= a[i]) sta.pop();        r[i] = sta.empty() ? n + 1 : sta.top();        sta.push(i);    }    ll ans = 0;    for (int i = 1; i <= n; i++)        ans = max(ans, (r[i] - l[i] - 1) * a[i]);    PRintf("%I64d/n", ans);    return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 免费国产一级淫片 | 欧美性生活久久久 | 毛片网站视频 | 黄色片网站在线免费观看 | 久久久久久久国产视频 | 夜夜夜操操操 | 成人在线视频播放 | 蝌蚪久久窝| v11av在线视频成人 | v11av在线视频成人 | 精品一区在线视频 | 久久精品小短片 | 亚洲成人国产 | hdjapanesemassagehd日本| 九九热在线精品视频 | 欧美色视频免费 | 精品一区二区三区在线观看国产 | 日韩理论电影网 | 成人一级黄色片 | 国产羞羞视频在线观看 | 韩国精品一区二区三区四区五区 | 九九热视频这里只有精品 | 国产欧美亚洲精品a | 91免费高清视频 | 黄视频免费在线观看 | 偿还电影免费 | 国产精品一区二区三区在线 | 中文字幕在线网站 | 国产成人自拍视频在线观看 | 巨根插入 | 久久精片 | 亚洲视频在线观看免费 | 毛片天天看 | 久久久一区二区三区精品 | 欧美一级免费高清 | 国产一区二区三区网站 | 黄污视频在线看 | 激情久久精品 | 成人精品视频网站 | 欧美四级在线观看 | 国产高潮好爽好大受不了了 |