P2709 小 B 的询问
莫队模板题
CODE
#include <bits/stdc++.h>
using namespace std;
using LL = long long;
const int N = 5e4 + 10, M = 510;
int n, m, k, block;
int lal = 1, lar = 0;
int bl[N], cnt[N], a[N];
LL ans[N], sum;
struct node {
int l, r, id;
bool operator < (const node &T) const {
if(bl[l] == bl[T.l]) return r < T.r;
return bl[l] < bl[T.l];
}
}modui[N];
void add(int x) {
sum += 2 * cnt[x] + 1;
cnt[x] ++;
}
void del(int x) {
sum -= 2 * cnt[x] - 1;
cnt[x] --;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m >> k; block = sqrt(n);
for(int i = 1; i <= n; i ++ ) { cin >> a[i]; bl[i] = (i - 1) / block; }
for(int i = 1; i <= m; i ++ ) {
cin >> modui[i].l >> modui[i].r; modui[i].id = i;
}
sort(modui + 1, modui + 1 + m);
for(int i = 1; i <= m; i ++ ) {
int l = modui[i].l, r = modui[i].r;
while(lal > l) lal --, add(a[lal]);
while(lar < r) lar ++, add(a[lar]);
while(lal < l) del(a[lal]), lal ++;
while(lar > r) del(a[lar]), lar --;
ans[modui[i].id] = sum;
}
for(int i = 1; i <= m; i ++ ) {
cout << ans[i] << "\n";
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探