P2709 小B的詢問

2021-09-08 04:44:07 字數 1343 閱讀 4595

小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 3

1 3 2 1 1 3

1 42 6

3 55 6

輸出樣例#1:

695

2

對於全部的資料,1<=n、m、k<=50000

裸莫隊。

對於求平方可以先減去,再加回來『

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7const

int maxn=50001;8

void read(int &n)913

while(c>='

0'&&c<='9'

)14

15 flag==1?n=-x:n=x;16}

17int n,m,k,base;18

struct

node

19q[maxn];

22int ans=0;23

int pos[maxn],a[maxn],out

[maxn];

24int comp(const node & a,const node &b)

2531

記錄區間內每乙個數的出現次數

32void add(int

p)3340}

41void dele(int

p)4249}

50void

modui()

5165

for(int i=1;i<=m;i++)

66 printf("

%d\n

",out

[i]);67}

68int

main()

6982 sort(q+1,q+m+1

,comp);

83modui();

84return0;

85 }

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個整數...