BZOJ3781 小B的詢問

2021-08-19 23:07:33 字數 1002 閱讀 6329

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。

第二行,n個整數,表示小b的序列。

接下來的m行,每行兩個整數l、r。

output

m行,每行乙個整數,其中第i行的整數表示第i個詢問的答案。

sample input

6 4 3

1 3 2 1 1 3

1 4

2 6

3 5

5 6sample output

6 9 5 2

hint

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

題解赤裸♂的莫隊演算法

**

#include

#define a(v) cot[v]*cot[v]

using

namespace

std;

const

int m=5e4+5;

struct sd;

sd ask[m];

int n,m,k,cot[m],val[m],ans[m],sz,res;

bool

operator

<(sd a,sd b)

void add(int v)

void del(int v)

void ac()

sort(ask+1,ask+1+m);

l=r=ask[1].le,cot[val[ask[1].le]]=1,res=1;

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

int 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...

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...

BZOJ3781 小B的詢問

bzoj3781 小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個...