[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個整數,表示小b的序列。
接下來的m行,每行兩個整數l、r。
輸出
m行,每行乙個整數,其中第i行的整數表示第i個詢問的答案。
輸入示例
6431321
1314
2635
56
輸出示例
6952
資料規模及約定
對於全部的資料,1<=n、m、k<=50000
題解
莫隊裸題。。。
就我的莫隊跑得慢(大概是因為用了 vector?)。。。
#include #include #include #include #include #include #include #include using namespace std;int read()
while(isdigit(c))
return x * f;
}#define maxn 50010
#define maxbl 233
#define ll long long
int a[maxn];
struct que
que(int _, int __): l(_), r(__) {}
} qs[maxn];
bool cmp(int a, int b)
vector qid[maxbl];
int tot[maxn];
ll ans[maxn];
ll sqr(int x)
int main()
for(int i = 1; i <= cntb; i++) }
for(int i = 1; i <= q; i++) printf("%lld\n", ans[i]);
return 0;
}
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...
BZOJ3781 小B的詢問
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。第二...
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...