題目:烽火傳遞
做法:動態規劃+單調佇列
狀態表示: 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 個不點燃的情況)。
**:
#include
#include
using
namespace std;
const
int n=
200010
;int f[n]
,w[n]
,n,m,q[n]
;int
main()
int res=
0x3f3f3f3f
;for
(int i=n-m+
1;i<=n;i++
)//*range
res=
min(res,f[i]);
cout
}
單調佇列優化DP 烽火傳遞
烽火台是重要的軍事防禦設施,一般建在交通要道或險要處。一旦有軍情發生,則白天用濃煙,晚上有火光傳遞軍情。在某兩個城市之間有 n 座烽火台,每個烽火台發出訊號都有一定的代價。為了使情報準確傳遞,在連續 m 個烽火台中至少要有乙個發出訊號。現在輸入 n,m 和每個烽火台的代價,請計算在兩城市之間準確傳遞...
烽火傳遞 單調佇列 DP
描述 烽火台又稱烽燧,是重要的防禦設施,一般建在險要處或交通要道上。一旦有敵情發生,白天燃燒柴草,通過濃煙表達資訊 夜晚燃燒乾柴,以火光傳遞軍情。在某兩座城市之間有n個烽火台,每個烽火台發出訊號都有一定的代價。為了使情報準確的傳遞,在m個烽火台中至少要有乙個發出訊號。現輸入n m和每個烽火台發出的訊...
Jzoj1771 烽火傳遞 單調佇列優化dp
烽火台又稱烽燧,是重要的軍事防禦設施,一般建在險要或交通要道上。一旦有敵情發生,白天燃燒柴草,定代價。為了使情報準確地傳遞,在連續m個烽火台中至少要有乙個發出訊號。請計算總共最少花費多少代價,才能使敵軍來襲之時,情報能在這兩座城市之間準確傳遞。輸入格式 第一行 兩個整數n,m。其中n表示烽火台的個數...