雙端佇列之單調佇列 基本資料結構

2021-09-18 01:37:16 字數 663 閱讀 5227

看到題目我們可以從題目中獲取部分關鍵資訊,首先它時要求給定的區域時最小的,其次又是區間最優,通過最優我們可以想到單調性,切記:我們這裡的單調條件就是:名畫種類遞增!

廢話不多說,貼上**:

#include #include using namespace std;

const int n = 1e6+100;

const int m = 2010;

int b[n],cnt,a[n],m,n,ansl = 1e8,ansr = 1e8,ans = 1e8;

dequeq;

int main()

if(cnt >= m && q.back() - q.front() + 1 < ans )

}cout << ansl << " " << ansr << endl;

return 0;

}

對於stl的使用要特別小心也要熟悉使用,題目中資料n的範圍是小於1e6的這個資料範圍會把o(n方)的複雜度卡掉,所以要參考nlogn或者是n的複雜度,也要明白這個資料範圍出現的時候,標誌著這道題目某種程度上要使用資料結構來進行優化演算法!!

我們一直在努力!

六 基本資料結構 雙端佇列(Deque)

6.基本資料結構 雙端佇列 deque 一.雙端佇列 deque 概念 deque 也稱為雙端佇列 是與佇列類似的項的有序集合。它有兩個端部,首部和尾部,並且項在集合中保持不變。特性 deque 特殊之處在於新增和刪除項是非限制性的。可以在前面或後面新增新項。同樣,可以從任一端移除現有項。在某種意義...

六 基本資料結構 雙端佇列(Deque)

概念 deque 也稱為雙端佇列 是與佇列類似的項的有序集合。它有兩個端部,首部和尾部,並且項在集合中保持不變。特性 deque 特殊之處在於新增和刪除項是非限制性的。可以在前面或後面新增新項。同樣,可以從任一端移除現有項。在某種意義上,這種混合線性結構提供了單個資料結構中的棧和佇列的所有能力。注意...

資料結構 佇列 雙端佇列

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為對頭。佇列不允許在中間部位進行操作。假設佇列是q 那麼a1就是對頭元素,而an是隊尾元素。這樣我們就可...