時間限制: 1 sec 記憶體限制: 128 mb
提交: 127 解決: 27
[提交] [狀態] [討論版] [命題人:admin]
題目描述
給定乙個長度為 n 的數列 a0,a1,,⋯,an−1和乙個整數k。求數列 bi=min(ai,ai+1 ,⋯,ai+k−1)(i∈[0,n))。
特別的,對於 i>n−k 的 bi=0。
輸入第一行兩個正整數n,k。
第二行n個正整數a。
輸出n個數b。
複製樣例資料
5 2樣例輸出1 2 3 4 5
1 2 3 4 0提示
對於100%的資料,n≤1000000。
#include#define rep(i, a, b) for(int i = (a); i <= (b); ++ i)#define rep(j, a, b) for(int j = (a); j <= (b); ++ j)
#define per(i, a, b) for(int i = (a); i >= (b); -- i)
#define rep(i, a, b) for(int k = (a); k <= (b); ++ k)
using
namespace
std;
template
inline
void rd(t &ret)
}const
int maxn=1e2+6
;int
n,a[maxn],k,b[maxn];
intp[maxn];
intmain()
}for(int i=0;i"
%d "
,b[i]);
}
滑動視窗求解最大 最小值問題
結論 求最大值時使用雙端對維護遞減資料,即佇列中資料依次遞減,佇列頭部資料始終為最大值,每次將遍歷到的資料與佇列尾部的資料進行比較 如果不違反佇列的遞減規律 遍歷到的資料元素小於佇列尾部資料 就直接插入佇列尾部 如果違反了佇列的遞減規律就依次從佇列尾部彈出資料,直到找到能夠保持佇列遞減規律的位置。求...
最大最小值
示例一 maximum lambda x,y x y x x y y 注意 x y 返回的是0或者1 minimum lambda x,y x y y x y x a 10 b 20 print the largar one is d maximum a,b print the lower one ...
單調佇列在滑動最小值方面的應用
我們來看看,這樣乙個問題,poj 2823 sliding window 給定乙個序列 a1 a2,ai,a n 讓你構造乙個陣列b,b i min 對於這個問題我們當然可以用rmq等資料結構在 o nlgn 的時間內解決,可是這個資料結構首先是太難寫了,二是複雜度還可以降低.這種佇列滿足乙個關係及...