HDU 3530 Subsequence 單調佇列

2022-08-19 19:15:12 字數 347 閱讀 9036

給出乙個序列,求滿足m<=最大值-最小值<=k的最長連續子串行的長度

rmq或者單調佇列維護序列的最大值和最小值都可以做,這裡提供單調佇列的**

#include

#define type int

const int n=100005;

type mi_que[n],ma_que[n],mi_to[n],ma_to[n];

int mi_head,mi_tail,ma_head,ma_tail;

void solve()

if(i-id>res)res=i-id;}}

printf("%d\n",res);}}

int main()

hdu 3530 單調佇列

單調佇列就是佇列中的元素是單調遞增或遞減的。比如把 5 2 3 1 4 入隊 減 增 5 5 5 2 2 5 3 2 3 5 3 1 1 5 4 1 4 這個還是好理解的,但是,我們得會用單調佇列這一特性去解決題目,抽象出題目中有類似的操作。subsequence 題意 給三個數 n,x,y 接下來...

hdu3530 Subsequence 單調佇列

題目 在乙個序列中找乙個最長子串,使得子串的m 極差 k.維護乙個遞減的單調佇列q1 隊首為當前最大 同時維護乙個遞增的單調佇列q2 隊首為當前最小 控制最大減最小 小於等於k 若最大減最小大於等於m,則更新答案。include include include include includeusin...

hdu 3530 Subsequence 單調佇列

題目鏈結 題意 給定陣列,求得最長的區間,使得其中最大值與最小值的差值在給定的範圍內 m,k 思路 維護兩個佇列記錄元素下標,lo 與 hi 具體如何維護之後再講 保證 a lo 單調增,且記當前處理到下標 i 的位置,則 a lo x 即為 lo x 1 1 i 區間中的最小值 保證 a hi 單...