小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個詢問的答案。
6 4 3
1 3 2 1 1 3
1 42
63 5
5 6695
2對於全部的資料,1<=n、m、k<=50000
莫隊裸題······
code:
1 #include2 #include3 #include4 #include5 #include6#define maxn 50005
7using
namespace
std;
8 typedef long
long
int64;
9char
ch;10
intn,m,k,a[maxn],cnt[maxn],pos[maxn],siz;
11int64 ans[maxn],tmp;
12struct
querylist[maxn];
15bool
cmp(query a,query b)
19bool
ok;20
void read(int &x)
25void modify(int col,int
op)30
void
work()39}
40int
main()
BZOJ 3781 小B的詢問
description 小b有乙個序列,包含n個1 k之間的整數。他一共有m個詢問,每個詢問給定乙個區間 l.r 求sigma c i 2 的值,其中i的值從1到k,其中c i 表示數字i在 l.r 中的重複次數。小b請你幫助他回答詢問。題目分析 分塊 include include include...
BZOJ3781 小B的詢問
description 小b有乙個序列,包含n個1 k之間的整數。他一共有m個詢問,每個詢問給定乙個區間 l.r 求 r i lc i 2 i lrc i 2的值,其中i的值從1到k,其中c i 表示數字i在 l.r 中的重複次數。小b請你幫助他回答詢問。input 第一行,三個整數n m k。第二...
BZOJ 3781 小B的詢問
time limit 10 sec memory limit 128 mb submit 643 solved 435 submit status discuss 小b有乙個序列,包含n個1 k之間的整數。他一共有m個詢問,每個詢問給定乙個區間 l.r 求sigma c i 2 的值,其中i的值從1...