洛谷 P2709 小B的詢問

2022-03-03 07:07:32 字數 646 閱讀 7559

莫隊演算法,弄兩個指標亂搞即可

這應該是基礎莫隊了吧

$x^2$可以拆成$((x-1)+1)^2$,也就是$(x-1)^2+1^2+2\times (x-1)$,那麼如果乙個數字出現的次數修改$-1$,那麼$ans-=1+2\times (sum[a[pos]]-1)$,$sum[a[pos]]$表示出現在$pos$位置上的數出現的次數。

反之同理。。。

#include#define n 500000

using

namespace

std;

intn,m,k,bl,v[n],ans,sum[n];

struct

nodee[n];

bool

cmp(node a,node b)

bool

ccmp(node a,node b)

void remove(int

x)void insert(int

x)int

main()

sort(e+1,e+1+m,ccmp);

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

%d\n

",e[i].an-1

);

return0;

}

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

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

洛谷P2709 小B的詢問

題目大意 有乙個序列 s i 最大的數為 k 有 m 個詢問,詢問 l,r 中 sum c i 2 c i 表示數字 i 在 l,r 中的出現次數 題解 莫隊 卡點 為什麼我奇偶性優化會鍋?後記 發現了,用異或時,若 a.l b.l a.r b.r 時可能會出現 ac code include in...