题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3781

就是莫队,左端点分块排序,块内按右端点排序,然后直接做即可。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
int const xn=5e4+;
int n,m,k,cnt[xn],d[xn],blk[xn],a[xn];
ll sum,ans[xn];
struct N{int l,r,id;}q[xn];
bool cmp(N x,N y){return blk[x.l]==blk[y.l]?x.r<y.r:blk[x.l]<blk[y.l];}
int rd()
{
int ret=,f=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=; ch=getchar();}
while(ch>=''&&ch<='')ret=(ret<<)+(ret<<)+ch-'',ch=getchar();
return f?ret:-ret;
}
void add(int ps)
{
int x=a[ps];
sum-=(ll)cnt[x]*cnt[x];
cnt[x]++;
sum+=(ll)cnt[x]*cnt[x];
}
void del(int ps)
{
int x=a[ps];
sum-=(ll)cnt[x]*cnt[x];
cnt[x]--;
sum+=(ll)cnt[x]*cnt[x];
}
int main()
{
n=rd(); m=rd(); k=rd(); int bs=sqrt(n);
for(int i=;i<=n;i++)a[i]=rd(),blk[i]=(i-)/bs+;
for(int i=;i<=m;i++)q[i].l=rd(),q[i].r=rd(),q[i].id=i;
sort(q+,q+m+,cmp); add();
for(int i=,l=,r=;i<=m;i++)
{
int ql=q[i].l,qr=q[i].r;
while(l<ql)del(l),l++;
while(l>ql)l--,add(l);
while(r<qr)r++,add(r);
while(r>qr)del(r),r--;
ans[q[i].id]=sum;
}
for(int i=;i<=m;i++)printf("%lld\n",ans[i]);
return ;
}

最新文章

  1. Owin的URL编码怎么搞?以前都是HttpUtility.UrlEncode之类的,现在连system.web都没了,肿么办?
  2. 20145205 《Java程序设计》第7周学习总结
  3. 检索 COM 类工厂中 CLSID 解决办法
  4. Node.js Express 框架
  5. Java RMI 介绍和例子以及Spring对RMI支持的实际应用实例
  6. ubunutu_install_sublime_china
  7. #ifdef _cplusplus (转)
  8. web services 接口测试方法
  9. const关键字与指针
  10. ImageView设置点击效果没有用?ImageView src的图片大小改变不了?
  11. 论山寨手机与Android联姻的技术基础 【序】
  12. c++,static 静态成员变量 / 静态成员函数
  13. (中等) CF 576D Flights for Regular Customers (#319 Div1 D题),矩阵快速幂。
  14. 理解 dispatch_get_specific
  15. 两个排序链表的合并(Easy)
  16. vue使用element-ui 监听使用回车键事件
  17. 转载:安装Ubuntu 15.10后要做的事
  18. multer中间件
  19. cat命令合并多个txt文件
  20. (转)WAMP多站点配置

热门文章

  1. [Kubernetes]Volume
  2. [CTSC2007]数据备份Backup 题解
  3. HDU3572:Task Schedule【最大流】
  4. bzoj3514 Codechef MARCH14 GERALD07加强版 lct预处理+主席树
  5. Method, apparatus and system for acquiring a global promotion facility utilizing a data-less transaction
  6. msp430项目编程24
  7. DTrace C++ Mysteries Solved 转
  8. [WinForm]DataGridView列头右键菜单
  9. BloomFilter学习
  10. SecureCRT5 中文乱码