動態規劃 單調佇列維護 烽火傳遞

2021-08-19 05:26:08 字數 502 閱讀 1032

用q[i]表示到i前面符合條件的最小代價為多少(要取到i)

單調佇列維護區間中q[i]的最小值

l,r表示單調佇列的隊首與隊尾

從1到n迴圈,若q[qj[r]]>q[i](隊尾比當前大)

彈出隊尾將當前放入

若qj[l]最後更新一下q[i]=q[l]+a[i](符合要求區間中最小值加當前值為當前最小值)

答案在n—n-m+1中

#include#includeint a[300001];

int q[300001];

int qj[300001];

int n,m;

int main()

int l=1,r=0;

for(int i=1;i<=n;i++)

qj[++r]=i-1;

if(qj[l]=n-m+1;i--)

}printf("%d",ans);

return 0;

}

2883 烽火傳遞 動態規劃 單調佇列

烽火台又稱烽燧,是重要的軍事防禦設施,一般建在險要或交通要道上。一旦有敵情發生,白天燃燒柴草,通過濃煙表達資訊 夜晚燃燒乾柴,以火光傳遞軍情,在某兩座城市之間有 n 個烽火台,每個烽火台發出訊號都有一定代價。為了使情報準確地傳遞,在連續 m 個烽火台中至少要有乙個發出訊號。請計算總共最少花費多少代價...

單調佇列 維護

easy的學生的 資料結構 考試掛掉了,他求著easy再給他一次機會,easy出了這麼一道題,如果他的學生做出來就給這個學生一次重新考試的機會,題目是這樣的 維護乙個名為佇列的資料結構,支援以下四種操作 1.enqueue x 將值為x的元素放入佇列的尾部 2.dequeue 輸出當前佇列首部的元素...

烽火傳遞 單調佇列

烽火台又稱烽燧,是重要的軍事防禦設施,一般建在險要或交通要道上。一旦有敵情發生,白天燃燒柴草,通過濃煙表達資訊 夜晚燃燒乾柴,以火光傳遞軍情,在某兩座城市之間有n個烽火台,每個烽火台發出訊號都有一定代價。為了使情報準確地傳遞,在連續m個烽火台中至少要有乙個發出訊號。請計算總共最少花費多少代價,才能使...