当前位置:首页 > 莫队 > 正文
洛谷P2709小B的询问
1648+

题目大意: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请你帮助他回答询问。

输入输出格式

输入格式

第一行三个整数 $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$。

解题思路

莫队,分块排序后,时间复杂度就是$O(n\sqrt{n})$。

对于数字i的增加操作,原来出现次数c[i],现在出现次数改为c[i]+1,两者的平方之差是c[i]*2+1,修改时还是要考虑顺序的。

程序实现

About

坚决不Copy代码!

本文标签:,,,,,

洛谷P2709小B的询问:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!