小b有乙個序列,包含n個1~k之間的整數。他一共有m個詢問,每個詢問給定乙個區間[l..r],求sigma(c(i)^2)的值,其中i的值從1到k,其中c(i)表示數字i在[l..r]中的重複次數。小b請你幫助他回答詢問。
輸入格式:
第一行,三個整數n、m、k。
第二行,n個整數,表示小b的序列。
接下來的m行,每行兩個整數l、r。
輸出格式:
m行,每行乙個整數,其中第i行的整數表示第i個詢問的答案。
輸入樣例#1:
6 4 31 3 2 1 1 3
1 42 6
3 55 6
輸出樣例#1:
6952
對於全部的資料,1<=n、m、k<=50000
莫隊,注意一下add和del函式,開始時我是先減了再加上,後來發現這種做法,什麼意思呢,其實這個統計相同的數的次數在平方,與這個是等價的(帶一組數試一下即可)
1 #include2 #include3 #include4using
namespace
std;56
const
int maxn = 50100;7
struct
que14
}q[maxn];
15int
a[maxn],cnt[maxn],ans[maxn];
16int
n,m,k,tmp,pos;
17void add(int
x)18
22void del(int
x)23
27void
solve()
2838}39
intmain()
4051 sort(q+1,q+m+1
);52
solve();
53for (int i=1; i<=m; ++i)
54 printf("
%d\n
",ans[i]);
5556
return0;
57 }
P2709 小B的詢問
小b有乙個序列,包含n個1 k之間的整數。他一共有m個詢問,每個詢問給定乙個區間 l.r 求sigma c i 2 的值,其中i的值從1到k,其中c i 表示數字i在 l.r 中的重複次數。小b請你幫助他回答詢問。輸入格式 第一行,三個整數n m k。第二行,n個整數,表示小b的序列。接下來的m行,...
P2709 小B的詢問
小b有乙個序列,包含n個1 k之間的整數。他一共有m個詢問,每個詢問給定乙個區間 l.r 求sigma c i 2 的值,其中i的值從1到k,其中c i 表示數字i在 l.r 中的重複次數。小b請你幫助他回答詢問。輸入格式 第一行,三個整數n m k。第二行,n個整數,表示小b的序列。接下來的m行,...
洛谷P2709 小B的詢問
傳送門 題目描述 小b有乙個序列,包含n個1 k之間的整數。他一共有m個詢問,每個詢問給定乙個區間 l.r 求sigma c i 2 的值,其中i的值從1到k,其中c i 表示數字i在 l.r 中的重複次數。小b請你幫助他回答詢問。輸入輸出格式 輸入格式 第一行,三個整數n m k。第二行,n個整數...