用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個烽火台中至少要有乙個發出訊號。請計算總共最少花費多少代價,才能使...