洛谷P2709 小B的詢問

2022-05-24 01:24:07 字數 601 閱讀 9149

題目大意:有乙個序列$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 #include #define bsz 224

#define belong(i) ((i / bsz) + (i % bsz && 1))

#define maxn 50010

int n, m, k;

int ans[maxn];

int s[maxn], cnt[maxn];

struct node

} q[maxn];

int main()

for (int i = 1; i <= m; i++) printf("%d\n", ans[i]);

return 0;

}

洛谷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的詢問

莫隊演算法,弄兩個指標亂搞即可 這應該是基礎莫隊了吧 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 位置上的數出現的次數。反之...