BZOJ4491 我也不知道題目名字是什麼

2022-05-09 15:50:55 字數 1153 閱讀 8947

試題描述

給定乙個序列 \(a_i\),每次詢問 \(l,r\),求 \([l,r]\) 內最長子串,使得該子串為不上公升子串或不下降子串

輸入第一行 \(n\),表示 \(a\) 陣列有多少元素

接下來一行為 \(n\) 個整數 \(a_i\)

接下來乙個整數 \(q\),表示詢問數量

接下來 \(q\) 行,每行 \(2\) 個整數 \(l\),\(r\)

輸出對於每個詢問,求 \([l,r]\) 內最長子串,使得該子串為不上公升子串或不下降子串

輸入示例

9

1 2 3 4 5 6 5 4 3

51 6

1 72 7

1 95 9

輸出示例
665

64

資料規模及約定

\(n,q \leq 50000\)

題解直接上線段樹。分別維護區間最長不降子串長度、區間最長前字尾不降子串長度;上公升同理;最後取 \(max\) 即可。

#include #include #include #include #include #include using namespace std;

const int buffersize = 1 << 16;

char buffer[buffersize], *head, *tail;

inline char getchar()

return *head++;

}int read()

while(isdigit(c))

return x * f;

}#define maxn 50010

int n, a[maxn];

struct info

info(int _, int __): l(_), r(__)

info operator + (const info& t) const

} seg[maxn<<2];

void build(int o, int l, int r)

info query(int o, int ql, int qr)

return ans;

}int main()

return 0;

}

BZOJ 4491 我也不知道題目名字是什麼

給定乙個序列a i 每次詢問l,r,求 l,r 內最長子串,使得該子串為不上公升子串或不下降子串 第一行n,表示a陣列有多少元素 接下來一行為n個整數a i 接下來乙個整數q,表示詢問數量 接下來q行,每行2個整數l,r 對於每個詢問,求 l,r 內最長子串,使得該子串為不上公升子串或不下降子串 9...

BZOJ 4491 我也不知道題目名字是什麼

time limit 10 sec memory limit 512 mb submit 278 solved 154 submit status discuss 給定乙個序列a i 每次詢問l,r,求 l,r 內最長子串,使得該子串為不上公升子串或不下降子串 第一行n,表示a陣列有多少元素 接下來...

BZOJ4491 我也不知道題目名字是什麼

給定乙個序列a i 每次詢問l,r,求 l,r 內最長子串,使得該子串為不上公升子串或不下降子串 第一行n,表示a陣列有多少元素 接下來一行為n個整數a i 接下來乙個整數q,表示詢問數量 接下來q行,每行2個整數l,r 對於每個詢問,求 l,r 內最長子串,使得該子串為不上公升子串或不下降子串 9...