小Z的袜子(hose) HYSBZ - 2038 莫队+分块
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef pair<ll,ll>pll;
- const int maxn=5e5+;
- int n,m;
- int block;
- int a[maxn],belong[maxn];
- pll ans[maxn];
- ll sum;
- ll num[maxn];
- struct node{
- int l,r;
- int id;
- }q[maxn];
- bool cmp(node a,node b)
- {
- //先所在块
- if(belong[a.l]==belong[b.l])
- return a.r<b.r;
- //按所在快排序
- return belong[a.l]<belong[b.l];
- }
- void add(int x)
- {
- sum-=num[a[x]]*num[a[x]];
- num[a[x]]++;
- sum+=num[a[x]]*num[a[x]];
- }
- void del(int x)
- {
- sum-=num[a[x]]*num[a[x]];
- num[a[x]]--;
- sum+=num[a[x]]*num[a[x]];
- }
- int main()
- {
- cin>>n>>m;
- for(int i=;i<=n;i++)
- cin>>a[i];
- int sz=sqrt(n);
- for(int i=;i<=n;i++)
- belong[i]=i/sz;
- for(int i=;i<=m;i++)
- {
- cin>>q[i].l>>q[i].r;
- q[i].id=i;
- }
- sort(q+,q++m,cmp);
- int l=,r=;
- sum=;
- for(int i=;i<=m;i++)
- {
- int id=q[i].id;
- while(r<q[i].r)
- {
- r++;
- add(r);
- }
- while(r>q[i].r)
- {
- del(r);
- r--;
- }
- while(l>q[i].l)
- {
- l--;
- add(l);
- }
- while(l<q[i].l)
- {
- del(l);
- l++;
- }
- //减去重复拿相同的
- ans[id].first=sum-(q[i].r-q[i].l+);
- //所有方案
- ans[id].second=(ll)(q[i].r-q[i].l+)*(q[i].r-q[i].l);
- if(ans[id].first==)
- {
- ans[id].second=;
- continue;
- }
- ll tmp=__gcd(ans[id].first,ans[id].second);
- ans[id].first=ans[id].first/tmp;
- ans[id].second=ans[id].second/tmp;
- }
- for(int i=;i<=m;i++)
- cout<<ans[i].first<<"/"<<ans[i].second<<endl;
- return ;
- }
小Z的袜子(hose) HYSBZ - 2038 莫队+分块的更多相关文章
- 小Z的袜子(hose) HYSBZ - 2038 (莫队算法)
原文地址:http://hzwer.com/2782.html 「BZOJ2038」[2009国家集训队] 小Z的袜子(hose) 2014年4月26日13,34721 Description 作为一 ...
- [2009国家集训队]小Z的袜子(hose) 浅谈莫队
浅谈莫队 推荐学习博客 http://foreseeable97.logdown.com/posts/158522-233333 借用题目: bzoj 2038 2009 国家集训队 小Z的袜子htt ...
- 【bzoj 2038】 [2009国家集训队]小Z的袜子(算法效率--莫队分块算法 模版题)
题意:小Z有N只袜子,有不同的颜色.他有M个提问,问从编号为[L,R]的袜子中随机选一双同色的袜子的概率,用最简分数表示. 解法:经典的莫队算法--无修改.不强制在线(可离线).状态转移可以一步完成. ...
- [BZOJ2038]:[2009国家集训队]小Z的袜子(hose)(离线莫队)
题目传送门 题目描述 作为一个生活散漫的人,小$Z$每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小$Z$把这 ...
- [2009国家集训队]小Z的袜子(hose)(BZOJ2038+莫队入门题)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 题目: 题意:中文题意,大家都懂. 思路:莫队入门题.不过由于要去概率,所以我们假 ...
- 小Z的袜子(hose) &&作业 (莫队)
莫队:一种非常优雅的暴力,时间复杂度一般情况下是n*根号n,还是很优秀的. 今天水了三道莫队题,对普通莫队有了些了解 1.莫队l和r为指针,维护当前区间的某些信息,一般可以是当前区间不同权值的个数,( ...
- 清橙A1206.小Z的袜子 && CF 86D(莫队两题)
清橙A1206.小Z的袜子 && CF 86D(莫队两题) 在网上看了一些别人写的关于莫队算法的介绍,我认为,莫队与其说是一种算法,不如说是一种思想,他通过先分块再排序来优化离线查询问 ...
- 小Z的袜子 题解报告【莫队】
Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7687 Solved: 3516[Subm ...
随机推荐
- Express+MySQL实现登录注册的demo
MySQL5.7.20 demo准备 安装MySQL,安装完毕之后添加系统环境变量在cmd中启动服务:net start mysql57,如果是安装MySQL8.0则服务名默认时mysql80,测试安 ...
- IDEA | 更改idea打开新项目默认配置
背景 使用过idea的童鞋应该都发现,用idea打开一个新项目,总是需要重新配置一遍,它会使用系统默认配置,例如maven.JDK等设置. 解决方案 IDEA其实有个设置是可以更改新项目的默认配置,大 ...
- C#中? 和 ??的区别
背景 最近在调试C#项目的时候,发现一个比较关于??的特殊用法,当时把我给惊到了,所以特意用这篇短短的笔记来记录一下我的解惑过程: 示例代码: showsomething(isNameNull ?? ...
- void * 和 void 在函数返回值中的区别
一个很容易糊涂的问题. 在函数的返回值中, void 是没有任何返回值, 而 void * 是返回任意类型的值的指针. 还是看代码吧: #include <stdlib.h> #inclu ...
- linux下的 $ ./configure $ sudo make && sudo make install
$ ./configure $ sudo make && sudo make install 1)./configure命令就是执行当前目录的名为configure的脚本,主要的作用是 ...
- javascript A*算法 寻路算法 获取最短路径算法
//A算法 自动寻路 路径 class GetAutoPath{ constructor(id, map, sPos, ePos, mapArr){ //this.type = id.type; th ...
- 【机器学习】算法原理详细推导与实现(六):k-means算法
[机器学习]算法原理详细推导与实现(六):k-means算法 之前几个章节都是介绍有监督学习,这个章解介绍无监督学习,这是一个被称为k-means的聚类算法,也叫做k均值聚类算法. 聚类算法 在讲监督 ...
- IP unnumbered interface,某个接口不编号,某个接口不分配IP地址
OSPFv2中,提到点到点链路可以是unnumbered,不编号,不分配IP地址 12.4.1.1. Describing point-to-point interfaces ...
- 兄弟连 企业shell笔试题 1-15
这些题目收集自网络,对比原来的答案,又根据实际情况重新编写了自己的答案 企业实践题1: (生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境 ...
- Shell脚本 统计店中店导出数据
有一个数据文件 yue.csv 是这样的 #head yue.csv 日期,商家名称,要求在线数,当天在线数,要求在线时长,在线时长达标数, ……"2017-12-31&quo ...