烽火傳遞(單調佇列優化動規)

2021-09-05 12:53:55 字數 628 閱讀 4201

首先裸動規 

#include#include#include#includeusing namespace std;

int f[100500],a[100500];

int n,m;

int main()

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

ans = min(ans, f[i]);

printf("%d", ans);

return 0;

}

考慮優化…

雙層迴圈非吾願 這時第二層迴圈的作用:找前m個的最小值

我們看到了事情的轉機

此時想到單調佇列解決rmq

錯點明確:單調佇列的q存的是什麼變數意義

#include#include#include#includeusing namespace std;

int f[100500],a[100500];

int q[100500];

int n,m;

int main()

printf("%d", f[q[head]]);

return 0;

}

單調佇列優化DP 烽火傳遞

烽火台是重要的軍事防禦設施,一般建在交通要道或險要處。一旦有軍情發生,則白天用濃煙,晚上有火光傳遞軍情。在某兩個城市之間有 n 座烽火台,每個烽火台發出訊號都有一定的代價。為了使情報準確傳遞,在連續 m 個烽火台中至少要有乙個發出訊號。現在輸入 n,m 和每個烽火台的代價,請計算在兩城市之間準確傳遞...

烽火傳遞 單調佇列

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

DP 單調佇列優化 DP 烽火傳遞

題目 烽火傳遞 做法 動態規劃 單調佇列 狀態表示 f i f i f i 表示前 i ii 個烽火台並點燃第 i ii 個烽火台的最小合法代價。狀態轉移 f i f i f i m in min min,最後掃瞄隊尾 m mm 個 f i f i f i 的值 這樣就可考慮到第 i ii 個不點燃...