1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. typedef pair<ll,ll>pll;
  5. const int maxn=5e5+;
  6. int n,m;
  7. int block;
  8. int a[maxn],belong[maxn];
  9. pll ans[maxn];
  10. ll sum;
  11. ll num[maxn];
  12. struct node{
  13. int l,r;
  14. int id;
  15. }q[maxn];
  16. bool cmp(node a,node b)
  17. {
  18. //先所在块
  19. if(belong[a.l]==belong[b.l])
  20. return a.r<b.r;
  21. //按所在快排序
  22. return belong[a.l]<belong[b.l];
  23. }
  24. void add(int x)
  25. {
  26. sum-=num[a[x]]*num[a[x]];
  27. num[a[x]]++;
  28. sum+=num[a[x]]*num[a[x]];
  29. }
  30. void del(int x)
  31. {
  32. sum-=num[a[x]]*num[a[x]];
  33. num[a[x]]--;
  34. sum+=num[a[x]]*num[a[x]];
  35. }
  36. int main()
  37. {
  38. cin>>n>>m;
  39. for(int i=;i<=n;i++)
  40. cin>>a[i];
  41. int sz=sqrt(n);
  42. for(int i=;i<=n;i++)
  43. belong[i]=i/sz;
  44. for(int i=;i<=m;i++)
  45. {
  46. cin>>q[i].l>>q[i].r;
  47. q[i].id=i;
  48. }
  49. sort(q+,q++m,cmp);
  50. int l=,r=;
  51. sum=;
  52. for(int i=;i<=m;i++)
  53. {
  54. int id=q[i].id;
  55. while(r<q[i].r)
  56. {
  57. r++;
  58. add(r);
  59. }
  60. while(r>q[i].r)
  61. {
  62. del(r);
  63. r--;
  64. }
  65. while(l>q[i].l)
  66. {
  67. l--;
  68. add(l);
  69. }
  70. while(l<q[i].l)
  71. {
  72. del(l);
  73. l++;
  74. }
  75. //减去重复拿相同的
  76. ans[id].first=sum-(q[i].r-q[i].l+);
  77. //所有方案
  78. ans[id].second=(ll)(q[i].r-q[i].l+)*(q[i].r-q[i].l);
  79. if(ans[id].first==)
  80. {
  81. ans[id].second=;
  82. continue;
  83. }
  84. ll tmp=__gcd(ans[id].first,ans[id].second);
  85. ans[id].first=ans[id].first/tmp;
  86. ans[id].second=ans[id].second/tmp;
  87. }
  88. for(int i=;i<=m;i++)
  89. cout<<ans[i].first<<"/"<<ans[i].second<<endl;
  90. return ;
  91. }

小Z的袜子(hose) HYSBZ - 2038 莫队+分块的更多相关文章

  1. 小Z的袜子(hose) HYSBZ - 2038 (莫队算法)

    原文地址:http://hzwer.com/2782.html 「BZOJ2038」[2009国家集训队] 小Z的袜子(hose) 2014年4月26日13,34721 Description 作为一 ...

  2. [2009国家集训队]小Z的袜子(hose) 浅谈莫队

    浅谈莫队 推荐学习博客 http://foreseeable97.logdown.com/posts/158522-233333 借用题目: bzoj 2038 2009 国家集训队 小Z的袜子htt ...

  3. 【bzoj 2038】 [2009国家集训队]小Z的袜子(算法效率--莫队分块算法 模版题)

    题意:小Z有N只袜子,有不同的颜色.他有M个提问,问从编号为[L,R]的袜子中随机选一双同色的袜子的概率,用最简分数表示. 解法:经典的莫队算法--无修改.不强制在线(可离线).状态转移可以一步完成. ...

  4. [BZOJ2038]:[2009国家集训队]小Z的袜子(hose)(离线莫队)

    题目传送门 题目描述 作为一个生活散漫的人,小$Z$每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小$Z$把这 ...

  5. [2009国家集训队]小Z的袜子(hose)(BZOJ2038+莫队入门题)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 题目: 题意:中文题意,大家都懂. 思路:莫队入门题.不过由于要去概率,所以我们假 ...

  6. 小Z的袜子(hose) &&作业 (莫队)

    莫队:一种非常优雅的暴力,时间复杂度一般情况下是n*根号n,还是很优秀的. 今天水了三道莫队题,对普通莫队有了些了解 1.莫队l和r为指针,维护当前区间的某些信息,一般可以是当前区间不同权值的个数,( ...

  7. 清橙A1206.小Z的袜子 && CF 86D(莫队两题)

    清橙A1206.小Z的袜子 && CF 86D(莫队两题) 在网上看了一些别人写的关于莫队算法的介绍,我认为,莫队与其说是一种算法,不如说是一种思想,他通过先分块再排序来优化离线查询问 ...

  8. 小Z的袜子 题解报告【莫队】

    Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只 ...

  9. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7687  Solved: 3516[Subm ...

随机推荐

  1. Express+MySQL实现登录注册的demo

    MySQL5.7.20 demo准备 安装MySQL,安装完毕之后添加系统环境变量在cmd中启动服务:net start mysql57,如果是安装MySQL8.0则服务名默认时mysql80,测试安 ...

  2. IDEA | 更改idea打开新项目默认配置

    背景 使用过idea的童鞋应该都发现,用idea打开一个新项目,总是需要重新配置一遍,它会使用系统默认配置,例如maven.JDK等设置. 解决方案 IDEA其实有个设置是可以更改新项目的默认配置,大 ...

  3. C#中? 和 ??的区别

    背景 最近在调试C#项目的时候,发现一个比较关于??的特殊用法,当时把我给惊到了,所以特意用这篇短短的笔记来记录一下我的解惑过程: 示例代码: showsomething(isNameNull ?? ...

  4. void * 和 void 在函数返回值中的区别

    一个很容易糊涂的问题. 在函数的返回值中, void 是没有任何返回值, 而 void * 是返回任意类型的值的指针. 还是看代码吧: #include <stdlib.h> #inclu ...

  5. linux下的 $ ./configure $ sudo make && sudo make install

    $ ./configure $ sudo make && sudo make install 1)./configure命令就是执行当前目录的名为configure的脚本,主要的作用是 ...

  6. javascript A*算法 寻路算法 获取最短路径算法

    //A算法 自动寻路 路径 class GetAutoPath{ constructor(id, map, sPos, ePos, mapArr){ //this.type = id.type; th ...

  7. 【机器学习】算法原理详细推导与实现(六):k-means算法

    [机器学习]算法原理详细推导与实现(六):k-means算法 之前几个章节都是介绍有监督学习,这个章解介绍无监督学习,这是一个被称为k-means的聚类算法,也叫做k均值聚类算法. 聚类算法 在讲监督 ...

  8. IP unnumbered interface,某个接口不编号,某个接口不分配IP地址

    OSPFv2中,提到点到点链路可以是unnumbered,不编号,不分配IP地址 12.4.1.1.  Describing point-to-point interfaces             ...

  9. 兄弟连 企业shell笔试题 1-15

    这些题目收集自网络,对比原来的答案,又根据实际情况重新编写了自己的答案 企业实践题1: (生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境 ...

  10. Shell脚本 统计店中店导出数据

    有一个数据文件  yue.csv  是这样的   #head yue.csv  日期,商家名称,要求在线数,当天在线数,要求在线时长,在线时长达标数,   ……"2017-12-31&quo ...