AcWing 1089 烽火傳遞

2021-10-10 03:35:05 字數 871 閱讀 9648

link

/*

陣列沒開夠,爆零兩行淚

longlong開成int,爆零兩行淚

多組忘清空,爆零兩行淚

dp 沒初值,爆零兩行淚

深搜沒邊界,爆零兩行淚

廣搜忘出隊,爆零兩行淚

輸入沒加 &,爆零兩行淚

模數沒看見,爆零兩行淚

-1 不輸出,爆零兩行淚

越界不特判,爆零兩行淚

線段樹開一倍,爆零兩行淚

無向變有向,爆零兩行淚

題意沒審清,爆零兩行淚

檔名起錯,爆零兩行淚

除錯忘刪除,爆零兩行淚

沒用freopen,爆零兩行淚

*/#include

using namespace std;

const

int n=

200012

;int n,m;

int q[n]

;int f[n]

;int w[n]

;int

main()

int res=

2147483647

;for

(int i=n-m+

1;i<=n;i++

) res=

min(res,f[i]);

cout

}/*f[i] 表示1~i所有點滿足要求,且第i個烽火台被點燃的最小代價

(i-m,i-m+1,i-m+2,...,i-2,i-1)

f[i]=上面這一坨的最小代價 + 點燃第i個烽火台的代價

我們需要求i-m到i-1區間的最小值,考慮用單調佇列維護

q存的是區間最小代價的下標

*/

AcWing 1089 烽火傳遞

link 陣列沒開夠,爆零兩行淚 longlong開成int,爆零兩行淚 多組忘清空,爆零兩行淚 dp 沒初值,爆零兩行淚 深搜沒邊界,爆零兩行淚 廣搜忘出隊,爆零兩行淚 輸入沒加 爆零兩行淚 模數沒看見,爆零兩行淚 1 不輸出,爆零兩行淚 越界不特判,爆零兩行淚 線段樹開一倍,爆零兩行淚 無向變有...

AcWing 1089 烽火傳遞

題目傳送門 以i結尾的f i 滑動視窗的區間是 i m,i 1 單調佇列維護的是該區間的最小值,由於滑動視窗不包含i,因此f i 需要在while上方進行更新 include using namespace std const int inf 0x3f3f3f3f const int n 20001...

烽火傳遞 單調佇列

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