題意:小b有乙個序列,包含n個1~k之間的整數。他一共有m個詢問,每個詢問給定乙個區間[l..r],求sigma(c(i)^2)的值,其中i的值從1到k,其中c(i)表示數字i在[l..r]中的重複次數。小b請你幫助他回答詢問。
就是求區間不同數字個數的平方和
注意平方數可以拆開從1-n 遞推。。。
#includeusingview codenamespace
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;
}
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個整數,表示小...