單調棧 51nod 1423 最大二「貨」

2021-08-03 07:26:23 字數 364 閱讀 7216

我們直接搞乙個遞減單調棧;

對於每乙個當前的x;

可以發現棧裡的所有比x小的值都代表了乙個區間的次大值,最大值就是x;

那麼我們不斷彈出這些數並且計算答案就好了,最後把x壓入棧;

當然嘍,這個僅僅是次大值在最大值前面的情況;

#include

#define ll long long

using namespace std;

const int n=1e5+5;

int a[n],q[n];

int r,n,m,ans;

void work()

}int main()

}

51nod 1272 最大距離 單調棧

1272 最大距離 codility 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給出乙個長度為n的整數陣列a,對於每乙個陣列元素,如果他後面存在大於等於該元素的數,則這兩個數可以組成一對。每個元素和自己也可以組成一對。例如 可以組成11對,如下 數字為下標 ...

51Nod 1349 最大值(單調棧)

1349 最大值 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 有一天,小a給了小b一些數字,讓小b幫忙找到其中最大的數,由於小b是乙個程式猿,當然寫了乙個 很快的解決了這個問題。這時,的小c又出現了,他問小b,假如我只需要知道這些數字中的某個區間的最大值,你還...

51nod 1349 最大值 單調棧

有一天,小a給了小b一些數字,讓小b幫忙找到其中最大的數,由於小b是乙個程式猿,當然寫了乙個 很快的解決了這個問題。這時,的小c又出現了,他問小b,假如我只需要知道這些數字中的某個區間的最大值,你還能做嘛?小b經過七七四十九天的思考,終於完美的解決了這道題目,這次,他想也讓小c嚐嚐苦頭,於是他問小c...