poj1821:這題是一道比較典型的佇列優化問題吧,狀態方程如下:
dp[i][j]=max(max,dp[i-1][j],dp[i][j-1]}; 第i個人不刷,第i個人刷:第j面牆不刷,列舉所有可能結尾的牆
dp[i][j]表示前i個人刷前j面牆的最大值,且第j面牆必須刷。
這題第一用到了雙端佇列deque,學習了不少東東啦。
**:hdu4374:這題方程還是比較好寫的,主要是一些預處理時注意下,還有佇列的插入和刪除,更新最值要寫在乙個迴圈裡,因為如果隊首的值不能滿足當前點的條件,那麼它也一定不能滿足當前點後面點的條件,就像滑動視窗一樣。
dp[i][j]=max;
**:
專題 單調佇列
單調佇列就是佇列中元素滿足單調性 入隊 從隊尾入隊,在入隊的時候刪掉隊尾比當前入隊的元素大 或小 的元素 出隊 出隊是直接把隊頭元素取出 poj2823 sliding window 滑動視窗 給定乙個長為n陣列以及乙個長為k的滑動視窗,視窗每個時刻向後移動一位,求出每個時刻視窗中數字的最大值和最小...
單調佇列專題總結
1 hdu 4193 題意 n個數組成的序列環,求長度小於等於m的字串的最大區間和。思路 如果n個數為線性關係,可以用單調佇列維護第i個數之前的m個數,及時剔除沒用的數。o n 解決。這裡是環,2倍陣列破環成鏈即可。非自己寫 include include includeusing namespac...
單調佇列,棧專題
a題 hdu 1506 題目大意 給你n個點,每乙個點代表當前座標下的矩形的高度,然後問你最大的矩形面積。具體思路 我們可以用乙個棧維護最大值,這個棧內的元素都是保持單調的,如果當前輸入的數比棧頂元素小的話,這個時候我們先算一波棧裡面的最大值,判斷停止的時候是當棧頂元素比當前輸入的元素小的時候停就可...