BZOJ 2038 小Z的袜子(hose)(分组)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2038
题意:给出n个袜子。m个询问,每个询问一个区间[L,R],询问这个区间中任意拿出两个袜子相同的概率。
思路:令x=sqrt(n),每x个分成一组。将询问按照L放到相应的组中。同一组内按照R升序。这样一组内最多向右移动n的长度,向左移动都在本组内,最大x。总复杂度n*sqrt(n)。
struct node
{
int L,R,id;
node(){}
node(int _L,int _R,int _id)
{
L=_L;
R=_R;
id=_id;
}
};
int a[N],n,m;
vector<node> V[N];
int cmp(node a,node b)
{
return a.R<b.R;
}
u64 ans[N];
int b[N],L[N],R[N];
u64 C(int x)
{
return (u64)x*(x-1)/2;
}
u64 Gcd(u64 x,u64 y)
{
if(!y) return x;
return Gcd(y,x%y);
}
int main()
{
RD(n,m);
int i;
FOR0(i,n) RD(a[i]);
int len=sqrt(1.0*n+0.5);
int s=n/len+(n%len!=0);
int x,y;
FOR1(i,m)
{
RD(x,y); x--,y--; L[i]=x; R[i]=y;
V[x/len].pb(node(x,y,i));
}
int j,k,curL,curR;
u64 pre;
FOR0(i,s)
{
clr(b,0); curL=i*len,curR=curL-1; pre=0;
sort(V[i].begin(),V[i].end(),cmp);
FOR0(j,SZ(V[i]))
{
x=V[i][j].L;
y=V[i][j].R;
k=V[i][j].id;
ans[k]=pre;
while(curR<y)
{
curR++;
ans[k]-=C(b[a[curR]]);
b[a[curR]]++;
ans[k]+=C(b[a[curR]]);
}
while(curL<x)
{
ans[k]-=C(b[a[curL]]);
b[a[curL]]--;
ans[k]+=C(b[a[curL]]);
curL++;
}
while(curL>x)
{
curL--;
ans[k]-=C(b[a[curL]]);
b[a[curL]]++;
ans[k]+=C(b[a[curL]]);
}
pre=ans[k];
}
}
u64 temp,p,q;
FOR1(i,m)
{
p=ans[i];
q=C(R[i]-L[i]+1);
temp=Gcd(p,q);
p/=temp; q/=temp;
printf("%llu/%llu\n",p,q);
}
}
BZOJ 2038 小Z的袜子(hose)(分组)的更多相关文章
- bzoj 2038 小Z的袜子(hose)(莫队算法)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 11542 Solved: 5166[Sub ...
- (原创)BZOJ 2038 小Z的袜子(hose) 莫队入门题+分块
I - 小Z的袜子(hose) 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z ...
- BZOJ 2038 小Z的袜子(hose) 莫队算法模板题
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2038 题目大意: 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中 ...
- [bzoj] 2038 小Z的袜子(hose) || 莫队
原题 给出一个序列,求给定[l,r]内有任意取两个数,有多大概率是一样的 简单的莫队,每次+-当前区间里有的这个颜色的袜子的个数,最后除以(r-l+1)*(r-l)/2即可. 记得约分. #inclu ...
- BZOJ 2038 小Z的袜子(hose) (莫队算法)
题意:中文题. 析:很著名的莫队算法,先把这个求概率的式子表达出来,应该是分子:C(x1, 2) + C(x2, 2) + C(x3, 2) + ... + C(xn, 2) 分母:C(n, 2), ...
- BZOJ - 2038 小Z的袜子(普通莫队)
题目链接:小Z的袜子 题意:$n$只袜子,$m$个询问,每次回答有多大概率在$[L,R]$区间内抽到两只颜色相同的袜子 思路:普通莫队,如果两个询问左端点在一个块内,则按询问右端点排序,否则按照所在块 ...
- BZOJ 2038 小z的袜子 & 莫队算法(不就是个暴力么..)
题意: 给一段序列,询问一个区间,求出区间中.....woc! 贴原题! 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过 ...
- BZOJ 2038 小z的袜子(莫队)
Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...
- [BZOJ 2038]小Z的袜子
传送门:BZOJ 2038 题意很明确,是在给定的区间内任意选取两个数,求选到两个相同的数的概率. 所以我们得首先统计在给定的区间内,相同的数对有多少对,那么这里就使用到了莫队算法.如果对莫队算法还不 ...
随机推荐
- 中断(interrupt)、异常(exception)、陷入(trap)
原文出处:http://lhk518.blog.163.com/blog/static/3153998320084263554749/ 中断:是为了设备与CPU之间的通信.典型的有如服务请求,任务完成 ...
- shadowmap 及优化
对于子阴影的走样, 条纹 开zbias resterizeState zbias = 1000...大概这样 另一个方法是画背面 backface是指一个人肚子那面,后背那面 而不是肚子的里面那层 所 ...
- swipejs的使用
<div id='slider' class='swipe'> <div class="swipe-wrap"> <div><img sr ...
- PE文件信息获取工具-PEINFO
能实现基本的信息获取 区段信息 数据目录信息 导入表函数分析 导出表函数分析,能同时解析只序号导出和以函数名序号同时导出的函数 FLC计算 需要源码的可以留邮箱.
- AVRStudio 的编译优化级别
-00 无优化. -01 减少代码尺寸和执行时间,不进行需要大量编译时间的优化. -02 几乎执行所有优化,而不考虑代码尺寸和执行时间. -03 执行 -02 所有的优化,以及内联函数,重命名寄存器的 ...
- ios设备突破微信小视频6S限制的方法
刷微信朋友圈只发文字和图片怎能意犹未竟,微信小视频是一个很好的补充,音视频到位,流行流行最流行.但小视频时长不能超过6S,没有滤镜等是很大的遗憾.but有人突破限制玩出了花样,用ios设备在朋友圈晒出 ...
- 设置VMWARE通过桥接方式使用主机无线网卡上网
原文:http://www.cnblogs.com/liongis/p/3265458.html 环境:WIN7旗舰版,台式机,U盘无线上网卡. 虚拟软件:VMware9.0,虚拟系统:CentOS6 ...
- Shell 备忘录
此文收集工作中用到的Shell备忘,随用随机: 1.比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如 ...
- iOS网络检测
使用之前请从Apple网站下载示例:点此下载 Reachability 中定义了3种网络状态: typedef enum : NSInteger { NotReachable = ,//无网络 Rea ...
- Apache POI 解析 microsoft word 图片文字都不放过
http://blog.csdn.net/njchenyi/article/details/6894500 http://haohaoxuexi.iteye.com/blog/2031335