題目描述
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 22 5 4 1 2 3 6 2 4
0 82 6
65
資料範圍與提示
對於全部資料,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 usingnamespace
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 省力多了。...