與眾不同 LibreOJ 10121

2022-05-13 06:56:24 字數 1370 閱讀 4377

題目描述

a 是某公司的 ceo,每個月都會有員工把公司的盈利資料送給 a,a 是個與眾不同的怪人,a 不注重盈利還是虧本,而是喜歡研究「完美序列」:一段連續的序列滿足序列中的數互不相同。

a 想知道區間 [l,

r]'>[l,r]

之間最長的完美序列長度。

輸入格式

第一行兩個整數 n,m

'>n,   

m,n'>n

表示連續 n

'>n

個月,編號為 0

'>0

到 n−

1'>n−1

,m'>

m 表示詢問的次數;

第二行 n

'>

n 個整數,第 i

'>i

個數表示該公司第 i

'>i

i 個月的盈利值 a

i'>ai

;接下來 m

'>

m 行每行兩個整數 l,r

'>l,r

,表示 a 詢問的區間。

輸出格式

輸出 m

'>m

行,每行乙個整數對應詢問區間內的完美序列的最長長度。

樣例input

output

9 2

2 5 4 1 2 3 6 2 4

0 82 6

6

5

資料範圍與提示

對於全部資料,1≤n

,m≤2

×105,

0≤l≤

r≤n−

1,|a

i|≤10

6'>1≤n,m≤2×105,0≤l≤r≤n−1,|ai|≤106

1≤n,m≤2×105,0≤l≤r≤n−1,|ai|≤106。

#include using

namespace

std;

typedef

long

long

ll;const

int n = 2e5+10,m=2e6;

ll case, n, m, i, j, k;

ll f[n][

20], st[n], las[m << 1

];inline

void

st()

}}inline ll rmq(ll l, ll r)

inline ll find(ll l, ll r)

returnl;}

intmain()

st();

for (i = 1; i <= m; i++)

printf(

"%lld\n

", ans);

}}

與眾不同2

for i 1 to n do begin read a i st i max st i 1 last a i 1 q i i st i 1 last a i i end 可以發現st陣列單調不減。於是對於乙個分割點mm有兩種情況 1 mm左邊一部分st值 l 1 2 mm右邊一部分st值 l 因為...

與眾不同1

題目描述 a是某公司的ceo,每個月都會有員工把公司的盈利資料送給a,a是個與眾不同的怪人,a不注重盈利還是虧本,而是喜歡研究 完美序列 連續的互不相同的序列。a想知道區間 1,r 之間最長的完美序列。輸入格式 第一行兩個整數n,m 1 n,m 2000000 n表示連續n個月,編號為0到n 1,m...

人總想與眾不同

說這個挺無聊的,不過這些年一直遇到這類問題,人們總想表現出很專業,但是太專業了就感覺不專業了。mysql 這個詞,寫起來只要注意了大小寫就可以了,m作為my的首字母大寫,sql作為首字母縮略詞也應該大寫。至於發音,內行人都知道sql可以讀為 sequel 比原本的 ess que ell 省力多了。...