題目鏈結
單調佇列優化dp板子
單調佇列優化dp定長連續區間最值問題
#include#include確定動規模型#define fora(i,s,e) for(int i=s;i<=e;i++)
#define fors(i,s,e) for(int i=s;i>=e;i--)
#define gc getchar()//
pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),stdin)?eof:*pa++
#define file(name) freopen(name".in","r",stdin);freopen(name".out","w",stdout);
using
namespace
std;
char buf[100000],*pa,*pb;
inline
intread();
const
int n=1e6,k=1e6;
int n,k,a[n+1
];int head,tail,num[k+1],q[n+1
];/*
單調佇列,num記錄的是單調佇列中元素在輸入資料中的編號,q代表的是元素在輸入資料中的值
*/void
solve_min()
printf("\n
");}void
solve_max()
}int
main()
inline
intread()
luogu P1886 滑動視窗
現在有一堆數字共n個數字 n 10 6 以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1 3 1 3 5 3 6 7 and k 3.輸入格式 輸入一共有兩行,第一行為n,k。第二行為n個數 輸出格式 輸出...
Luogu P1886 滑動視窗
傳送門此題為單調佇列入門題。單調佇列,可以 o n 求一段數列中區間極值。記錄佇列中元素大小與該元素在原陣列中的位置。當隊首元素超出當前求值區間時,頭指標加一 當當前將入隊元素大於或小於尾元素時,尾指標減一,直到不符合上一條件時,將當前元素入隊。然後要求極值只需輸出隊首元素即可。include co...
luoguP1886 滑動視窗 單調佇列
現在有一堆數字共n個數字 n 10 6 以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1 3 1 3 5 3 6 7 and k 3.輸入格式 輸入一共有兩行,第一行為n,k。第二行為n個數 輸出格式 輸出...