1886
題目描述
有乙個長為 nn 的序列 aa,以及乙個大小為 kk 的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。
例如:the array is [1,3,-1,-3,5,3,6,7], and k = 3。
輸入格式
輸入一共有兩行,第一行有兩個正整數 n,kn,k。 第二行 nn 個整數,表示序列 aa
輸出格式
輸出共兩行,第一行為每次視窗滑動的最小值
第二行為每次視窗滑動的最大值
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
1e6+5;
int n, m;
ll maxx[maxn]
, minn[maxn]
, a[maxn]
;struct node
v[maxn]
;void
getmax()
if(i >= m)
} cout << endl;
}void
getmin()
if(i >= m)
} cout << endl;
}int
main()
getmin()
;getmax()
;return0;
}
洛谷 1886 滑動視窗 單調佇列
單調佇列,就是字面意思。如何維護?假設我們是單調減的佇列 維護時,保證所有元素最多進隊一次出隊一次,複雜度o n 我們在隊頭放最大的元素,向右依次遞減。在隊尾插入新元素時,檢查新元素是否比隊尾元素大 是,則刪除隊尾元素,直到 比隊尾元素小時,插入新元素在隊尾。同時還要檢查一下,是否還在視窗範圍內 i...
洛谷P1886 滑動視窗 模板 單調佇列
傳送門 難度普及 提高 如題,單調佇列板子題。單調佇列是乙個雙端佇列,頭和尾都可以出元素。本文對單調佇列的實現進行簡述 模擬,方便理解,然後給出完整ac 因為求最大值與求最小值的思路是基本相同的,所以以求最小值為例進行分析,即對void minqueue 進行分析。int h 0,t 1 隊首h,隊...
單調佇列 洛谷P1886 滑動視窗
題目鏈結 dalao題解 題目給乙個長度為n的序列,然後給乙個值k,要求出長度為k的視窗在數列滑動過程中的最大值和最小值 圖示如下 比如給乙個長度為n 8的序列為 1 3 1 3 5 3 6 7 視窗長度是k 3 那麼視窗滑動中的 最小值就是 1 3 3 3 3 3 最大值就是 3 3 5 5 6 ...