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

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

代码如下:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cmath>
  6. using namespace std;
  7. typedef long long ll;
  8. int const xn=5e4+;
  9. int n,m,k,cnt[xn],d[xn],blk[xn],a[xn];
  10. ll sum,ans[xn];
  11. struct N{int l,r,id;}q[xn];
  12. bool cmp(N x,N y){return blk[x.l]==blk[y.l]?x.r<y.r:blk[x.l]<blk[y.l];}
  13. int rd()
  14. {
  15. int ret=,f=; char ch=getchar();
  16. while(ch<''||ch>''){if(ch=='-')f=; ch=getchar();}
  17. while(ch>=''&&ch<='')ret=(ret<<)+(ret<<)+ch-'',ch=getchar();
  18. return f?ret:-ret;
  19. }
  20. void add(int ps)
  21. {
  22. int x=a[ps];
  23. sum-=(ll)cnt[x]*cnt[x];
  24. cnt[x]++;
  25. sum+=(ll)cnt[x]*cnt[x];
  26. }
  27. void del(int ps)
  28. {
  29. int x=a[ps];
  30. sum-=(ll)cnt[x]*cnt[x];
  31. cnt[x]--;
  32. sum+=(ll)cnt[x]*cnt[x];
  33. }
  34. int main()
  35. {
  36. n=rd(); m=rd(); k=rd(); int bs=sqrt(n);
  37. for(int i=;i<=n;i++)a[i]=rd(),blk[i]=(i-)/bs+;
  38. for(int i=;i<=m;i++)q[i].l=rd(),q[i].r=rd(),q[i].id=i;
  39. sort(q+,q+m+,cmp); add();
  40. for(int i=,l=,r=;i<=m;i++)
  41. {
  42. int ql=q[i].l,qr=q[i].r;
  43. while(l<ql)del(l),l++;
  44. while(l>ql)l--,add(l);
  45. while(r<qr)r++,add(r);
  46. while(r>qr)del(r),r--;
  47. ans[q[i].id]=sum;
  48. }
  49. for(int i=;i<=m;i++)printf("%lld\n",ans[i]);
  50. return ;
  51. }

bzoj 3781 小B的询问 —— 莫队的更多相关文章

  1. Bzoj 3781: 小B的询问 莫队,分块,暴力

    3781: 小B的询问 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 426  Solved: 284[Submit][Status][Discuss ...

  2. 【模板】BZOJ 3781: 小B的询问 莫队算法

    http://www.lydsy.com/JudgeOnline/problem.php?id=3781 N个数的序列,每次询问区间中每种数字出现次数的平方和,可以离线. 丢模板: #include ...

  3. BZOJ 3781: 小B的询问 [莫队]

    求区间每种颜色出现次数平方和 写裸题练手 #include <iostream> #include <cstdio> #include <algorithm> #i ...

  4. BZOJ 3781: 小B的询问

    3781: 小B的询问 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 643  Solved: 435[Submit][Status][Discuss ...

  5. bzoj 3781: 小B的询问 分块

    3781: 小B的询问 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 196  Solved: 135[Submit][Status] Descrip ...

  6. 洛谷P2709 BZOJ 3781 小B的询问 (莫队)

    题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重 ...

  7. bzoj 3781 小B的询问(莫队算法)

    [题意] 若干个询问sigma{ cnt[i]^2 } cnt[i]表示i在[l,r]内的出现次数. [思路] 莫队算法,裸题. 一个cnt数组即可维护插入与删除. [代码] #include< ...

  8. 洛谷 P2709 BZOJ 3781 小B的询问

    题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求$\sum_1^Kc_i^2$的值,其中$c_i$表示数字i在[L..R]中的重复次数.小B请 ...

  9. BZOJ 2038 小z的袜子 & 莫队算法(不就是个暴力么..)

    题意: 给一段序列,询问一个区间,求出区间中.....woc! 贴原题! 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过 ...

随机推荐

  1. PTA 02-线性结构4 Pop Sequence (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/665 5-3 Pop Sequence   (25分) Given a stack wh ...

  2. js命名

    JS变量名前加 _ 与 $ 的区别: 下划线一般当做私有属性, 业界会比较常用$开头作为框架.库的关键词前缀,目的是避免命名冲突

  3. Spring Boot修改Thymeleaf版本(从Thymeleaf2.0到3.0)

    Spring Boot默认选择的Thymeleaf是2.0版本的,那么如果我们就想要使用3.0版本或者说指定版本呢,那么怎么操作呢?在这里要说明下 3.0的配置在spring boot 1.4.0+才 ...

  4. Java实现网页截屏

    原文:http://www.open-open.com/code/view/1424006089452 import java.awt.AWTException; import java.awt.De ...

  5. Enhance Magento 404 page

    Magento default installation already has a predefined custom 404 page (no-route). But is it enough t ...

  6. CEF3研究(四)之javascript集成

    一.介绍 谷歌浏览器和CEF使用V8JavaScript Engine作为内容的JavaScript实现.在浏览器中的每个窗口都有它自己在的JS上下文提供作用域和在窗口中安全的执行JS代码.CEF暴露 ...

  7. dnsmasq possible DNS-rebind attack detected错误

    最近在做openwrt的平台,dns使用的是dnsmasq,但是通过板子上网,将PC的dns设置成板子的时候,发现百度等都可以,但是公司邮箱打不开.公司邮箱的域名 xx-xx-notes.xxx.co ...

  8. topcoder srm 610

    div1 250pt: 题意:100*100的01矩阵,找出来面积最大的“类似国际象棋棋盘”的子矩阵. 解法:枚举矩阵宽(水平方向)的起点和终点,然后利用尺取法来找到每个固定宽度下的最大矩阵,不断更新 ...

  9. [Bash] View Files and Folders in Bash

    Sometimes when working at the command line, it can be handy to view a file’s contents right in the t ...

  10. HDU 1201 18岁生日 【日期】

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...