洛谷P2709小B的询问
1648+
作者:crxis 发布:2021-07-03 分类:莫队
题目大意:n个数,m次询问区间[l, r]各种数字出现次数的平方和。
题目描述
小B 有一个长为 $n$ 的整数序列 $a$,值域为 $[1,k]$。
他一共有 $m$ 个询问,每个询问给定一个区间 $[l,r]$,求:
$$\sum\limits_{i=1}^k c_i^2$$其中 $c_i$ 表示数字 $i$ 在 $[l,r]$ 中的出现次数。
小B请你帮助他回答询问。
他一共有 $m$ 个询问,每个询问给定一个区间 $[l,r]$,求:
$$\sum\limits_{i=1}^k c_i^2$$其中 $c_i$ 表示数字 $i$ 在 $[l,r]$ 中的出现次数。
小B请你帮助他回答询问。
输入输出格式
输入格式
第一行三个整数 $n,m,k$。
第二行 $n$ 个整数,表示 小B 的序列。
接下来的 $m$ 行,每行两个整数 $l,r$。
输出格式
输出 $m$ 行,每行一个整数,对应一个询问的答案。
输入输出样例
输入样例 #1
6 4 3
1 3 2 1 1 3
1 4
2 6
3 5
5 6
输出样例 #1
6
9
5
2
说明
【数据范围】
对于 $100\%$ 的数据,$1\le n,m,k \le 5\times 10^4$。
对于 $100\%$ 的数据,$1\le n,m,k \le 5\times 10^4$。
解题思路
莫队,分块排序后,时间复杂度就是$O(n\sqrt{n})$。
对于数字i的增加操作,原来出现次数c[i],现在出现次数改为c[i]+1,两者的平方之差是c[i]*2+1,修改时还是要考虑顺序的。