【單調(diào)隊(duì)列優(yōu)化dp】

參考洛谷p1440求m區(qū)間內(nèi)的最小值、洛谷p1725琪露諾

1.單調(diào)隊(duì)列:p1440求m區(qū)間內(nèi)的最小值(滑動(dòng)窗口)

對(duì)于一組數(shù)據(jù),多次求一個(gè)區(qū)間內(nèi)的最值,可以用一個(gè)雙端隊(duì)列deque維護(hù),

struct node
{
    int val;//要比較的值
    int pos;//這個(gè)值在這組數(shù)據(jù)中的位置
}v[N];
min_que[0] = 0;
int head = 1,tail = 0;
for(int i = 1; i < n; i++){
    while((head <= tail)&&(v[tail].val >= a[i - 1]))
               tail--;//tail移動(dòng)到從尾端數(shù)第一個(gè)小于該數(shù)的位置
    v[++tail].val = a[i - 1];
    v[tail].pos = i - 1;//將該數(shù)據(jù)放到隊(duì)列中
    while((head <= tail)&&(v[head].pos < i - m))
                head++;//將不在這個(gè)區(qū)間內(nèi)的頭部去掉,
    //中間的暫時(shí)不用去掉,因?yàn)橹粫?huì)用到頭部
    min_que[i] = v[head].val;
}

2.單調(diào)隊(duì)列優(yōu)化dp:

有一種dp要尋找從 i 到 j 中最大的 dp[k] ,此時(shí)可以利用單調(diào)隊(duì)列來優(yōu)化

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 找了好半天也沒找到可以注冊(cè)&&提交本題得OJ,所以不能保證AC。 描述烽火臺(tái)又稱烽燧,是重要的防御設(shè)施,一般建在險(xiǎn)...
    zjy_hala閱讀 1,111評(píng)論 0 0
  • 單調(diào)棧:進(jìn)棧元素單調(diào)遞增(減)的棧,如果碰到比棧頂元素大的元素就進(jìn)棧,否則不斷把棧頂元素彈出直到棧頂元素小于等于要...
    素理想閱讀 426評(píng)論 0 0
  • 簡(jiǎn)介 區(qū)間dp,顧名思義就是在一段區(qū)間上進(jìn)行動(dòng)態(tài)規(guī)劃。對(duì)于每段區(qū)間,他們的最優(yōu)值都是由幾段更小區(qū)間的最優(yōu)值得到,是...
    Steven1997閱讀 6,744評(píng)論 0 2
  • 前言 轉(zhuǎn)眼已經(jīng)到5月,可是我還沒訂17年的計(jì)劃,真是悲傷的故事。今年還是想花點(diǎn)時(shí)間,玩玩題目。題目不會(huì)太簡(jiǎn)單,也不...
    落影l(fā)oyinglin閱讀 1,015評(píng)論 0 3
  • 少不讀水滸、老不讀三國(guó)、拿這句話當(dāng)作一個(gè)典故、這似乎是我走在了人生的十字路口、有點(diǎn)不知所錯(cuò)、都講老話一直流傳下來都...
    陳琳琳閱讀 184評(píng)論 0 1

友情鏈接更多精彩內(nèi)容