-->
当前位置:首页 > 题库 > 正文内容

编程题:莫队算法

Luz3年前 (2022-09-05)题库319
$$Mirko$$是一个非常简单的人。$$Mirko$$的朋友$$Darko$$给了他一个由$$N$$个自然整数组成的数组,问他$$Q$$个问题,关于这个数组,$$Mirko$$必须回答。每个查询由两个整数组成,即数组中一个间隔的左端和右端位置。查询的答案是在给定的时间间隔中恰好出现两次的不同值的数量。

### 输入格式:

第一行输入包含整数$$N$$和$$Q(1≤N, Q≤500000)$$。输入的第二行包含$$N$$个小于$$1 000 000 000$$的自然整数,这是数组的元素。下面的$$Q$$行包含两个整数$$L$$和$$R(1≤L≤R≤N)$$,来自任务。

### 输出格式:

输出必须由$$Q$$行组成,每一行分别包含一个查询的答案。

### 得分:

在总共为$$56$$分的测试用例中,$$N$$和$$Q$$不会大于$$5000$$。

### 输入样例1:

in
5 1
1 2 1 1 1
1 3


### 输出样例1:

out
1


### 输入样例2:

in
5 2
1 1 1 1 1
2 4
2 3


### 输出样例2:

out
0
1

### 输入样例3:

in
5 2
1 1 2 2 3
1 1
1 5


### 输出样例3:

out
0
2


### 澄清第一个测试用例:
在从第一个元素到第三个元素的间隔中,只有一个数字(数字$$1$$)恰好出现了两次。






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。