luogu1709 小B的詢問 莫隊

2022-05-03 19:36:13 字數 976 閱讀 6035

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

不帶修莫隊模板題

#include

using

namespace

std;

const

int maxn = 200000 + 10;

int n,m,k,a[50000],ans[maxn],tot,cnt[1000001],block;

struct

node

}p[maxn];

inline

void

add(int x)

inline

void

del(int x)

intmain

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

return

0;}

#include

using

namespace

std;

const

int maxn = 200000 + 10;

int n,m,k,a[50000],ans[maxn],tot,cnt[1000001],block;

struct

node

}p[maxn];

inline

void

add(int x)

inline

void

del(int x)

intmain

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

return

0;}

luogu 2709小b的詢問 莫隊

無修改的莫隊幾乎沒有什麼太高深的套路,比較模板吧,大多都是在那兩個函式上動手腳。這題詢問每一種數字數量的平方和,那麼我們在左移或右移的時候記錄一下就好了,當每一種數字的種類數加1或減1的時候,我們需要減去以前這個數對答案的影響,加上現在對答案的影響。假設原來數字a的種類數為k,如今又加入乙個a,那麼...

莫隊 小B的詢問

莫隊經典例題 這題詢問每一種數字數量的平方和,那麼我們在左移或右移的時候記錄一下就好了,當每一種數字的種類數加1或減1的時候,我們需要減去以前這個數對答案的影響,加上現在對答案的影響。假設原來數字a的種類數為k,如今又加入乙個a,那麼先ans k2,然後ans k 1 2.刪除同理。include ...

洛谷小B的詢問(莫隊)

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。...