傳送門
這道題目一眼看去,先想到的必然是暴力,但是資料範圍m≤
n≤2000000
太嚇人,所以放棄這個想法,那麼我們一步步分析樣例是如何得來的:
/*
6 27 8 1 4 3 207
7113
*/
因為第乙個數前面沒有數,輸出0
第二個數之前的最小數為7,輸出7
第三個數之前2個的最小數為7,輸出7
第四個數之前2個的最小數為1,輸出1
第五個數之前2個的最小數為1,輸出1
這段分析看到很頭暈,但是如果我們使用乙個輔助陣列
q 來幫助我們理解,又會大不一樣。
0;}整個**就是這麼簡單,根本不需要線段樹之類的大神用具
洛谷P1440 求m區間內的最小值
題目大意 給你n個數,求出每個數前m位的最小值 題解 單調佇列,用乙個可以雙向彈出的佇列來存一串數,滿足裡面的數具有單調性,我們可以假設它是單調遞增的,即求最小的數。那麼可以把要插入的這個數與隊尾元素比較,如果隊尾的數大,那麼插入它就不滿足單調性了,那麼我們就從隊尾刪除元素,直到比隊尾元素大。這樣就...
洛谷 P1440 求m區間內的最小值 單調佇列
顯然是一道單調佇列題目 對於單調佇列不明白的請看這一篇部落格 這道題和模板唯一的不同點就是從0開始,一直輸出n次。什麼意思呢?詳細點說,就是輸出0到0,0到1,0到2 一直到0到m 1,接著是1到m,2到m 1,3到m 2 一直到n m到n 1的最小值。具體可以研究一下樣例,很容易就可以理解。所以我...
P1440 求M區間內的最小值
乙個含有 nn 項的數列,求出每一項前的 mm 個數到它這個區間內的最小值。若前面的數不足 mm 項則從第 11 個數開始,若前面沒有數則輸出 00。第一行兩個整數,分別表示 nn,mm。第二行,nn 個正整數,為所給定的數列 a ia i nn 行,每行乙個整數,第 ii 個數為序列中 a ia ...