P2709 小B的詢問(莫隊演算法)

2022-06-18 02:12:11 字數 880 閱讀 7619

小b 有乙個長為 nn 的整數序列 aa,值域為 [1,k][1,k]。

他一共有 mm 個詢問,每個詢問給定乙個區間 [l,r][l,r],求:

\sum\limits_^k c_i^2i=1∑k​ci2​

其中 c_ici​表示數字 ii 在 [l,r][l,r] 中的出現次數。

小b請你幫助他回答詢問。

第一行三個整數 n,m,kn,m,k。

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

接下來的 mm 行,每行兩個整數 l,rl,r。

輸出 mm 行,每行乙個整數,對應乙個詢問的答案。

#includeusing

namespace

std;

typedef

long

long

ll;const

int maxn=2e5+100

;ll a[maxn];

ll cnt[maxn];

ll belong[maxn];

ll n,m,k,size,bnum,now,ans[maxn];

struct

query q[maxn];

intcmp (query a,query b)

void add (int

p) void del (int

p) int

main ()

sort(q+1,q+m+1

,cmp);

ll l=1,r=0

;

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

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

%lld\n

",ans[i]);

}

P2709 小B的詢問 莫隊演算法

莫隊演算法被稱為優雅的暴力,是一種 毒瘤暴力的 區間操作演算法。初學莫隊,記錄一下思想。對於多個區間查詢 l,r 這類問題,可以離線操作,常規做法還有對左區間或者右區間從小到大排序,讓左指標或者右指標只走一遍,有效降低時間複雜度。但是遇到 1,1000000 2,3 3,1000000 4,5 5,...

P2709 小B的詢問 莫隊演算法

題意 小b有乙個序列,包含n個1 k之間的整數。他一共有m個詢問,每個詢問給定乙個區間 l.r 求sigma c i 2 的值,其中i的值從1到k,其中c i 表示數字i在 l.r 中的重複次數。小b請你幫助他回答詢問。就是求區間不同數字個數的平方和 注意平方數可以拆開從1 n 遞推。include...

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個整數,表示小...