主题

主题

 
   

3781: 小B的询问

原题:http://www.lydsy.com/JudgeOnline/problem.php?id=3781

Description

小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。小B请你帮助他回答询问。

Input

第一行,三个整数N、M、K。

第二行,N个整数,表示小B的序列。

接下来的M行,每行两个整数L、R。

Output

M行,每行一个整数,其中第i行的整数表示第i个询问的答案。

Sample Input

6 4 3

1 3 2 1 1 3

1 4

2 6

3 5

5 6

Sample Output

6

9

5

2

HINT

对于全部的数据,1<=N、M、K<=50000


个人解法:

知道是莫队了就变得如此简单。就算没有告诉,看到5e4的数据范围还是可以想到根号算法,然后还是可以想到莫队……

直接计算影响就好了。写一写式子就可以推导出删去/加入这个点的贡献。维护一个桶即可。


代码如下:

https://code.csdn.net/snippets/2284443

 
 
评论