P2709 小B的詢問 莫隊演算法

2022-05-01 15:51:11 字數 1089 閱讀 6032

題意:小b有乙個序列,包含n個1~k之間的整數。他一共有m個詢問,每個詢問給定乙個區間[l..r],求sigma(c(i)^2)的值,其中i的值從1到k,其中c(i)表示數字i在[l..r]中的重複次數。小b請你幫助他回答詢問。

就是求區間不同數字個數的平方和

注意平方數可以拆開從1-n 遞推。。。

#includeusing

namespace

std;

//input by bxd

#define rep(i,a,b) for(int i=(a);i<=(b);i++)

#define repp(i,a,b) for(int i=(a);i>=(b);--i)

#define ri(n) scanf("%d",&(n))

#define rii(n,m) scanf("%d%d",&n,&m)

#define riii(n,m,k) scanf("%d%d%d",&n,&m,&k)

#define rs(s) scanf("%s",s);

#define ll long long

#define pb push_back

#define clr(a,v) memset(a,v,sizeof a)

/////////////////////////////////

/#define inf 0x3f3f3f3f

#define lson l,m,pos<<1

#define rson m+1,r,pos<<1|1

const

int n=1e5+6

;ll a[n],sum[n];

struct

node

s[n];

ll anss[n],ans,block;

bool

cmp(node a,node b)

void del(int

x)void add(int

x)int

n,m,k;

intmain()

rep(i,

1,m)

cout

return0;

}

view code

P2709 小B的詢問 莫隊演算法

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

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

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

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