小Z的袜子(题解)(莫队)

Junlier良心莫队

题目

luoguP1494 [国家集训队]小Z的袜子

code

#include<bits/stdc++.h>
#define lst long long
#define ldb double
#define N 50050
using namespace std;
const int Inf=1e9;
int read()
{
int s=0,m=0;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')m=1;ch=getchar();}
while(ch>='0'&&ch<='9')s=(s<<3)+(s<<1)+(ch^48),ch=getchar();
return m?-s:s;
} int n,m,unit;lst Ans;
int col[N],bl[N];lst sum[N];
struct Ques{lst A,B;int le,ri,id;}ljl[N];
bool cmp_Q (Ques a,Ques b){return bl[a.le]==bl[b.le]?a.ri<b.ri:a.le<b.le;}
bool cmp_id(Ques a,Ques b){return a.id<b.id;}
void Update(int now,int xx)
{
Ans-=sum[col[now]]*sum[col[now]];
sum[col[now]]+=xx;
Ans+=sum[col[now]]*sum[col[now]];
} int main()
{
n=read(),m=read();unit=sqrt(n);
for(int i=1;i<=n;++i)
col[i]=read(),bl[i]=(i/unit)+1;
for(int i=1;i<=m;++i)
ljl[i]=(Ques){0,0,read(),read(),i};
sort(ljl+1,ljl+m+1,cmp_Q); int le=1,ri=0;
for(int i=1;i<=m;++i)
{
while(le<ljl[i].le)Update(le,-1) ,le++;
while(le>ljl[i].le)Update(le-1,1),le--;
while(ri<ljl[i].ri)Update(ri+1,1),ri++;
while(ri>ljl[i].ri)Update(ri,-1) ,ri--; if(ljl[i].le==ljl[i].ri){ljl[i].A=0,ljl[i].B=1;continue;}
ljl[i].A=Ans-(ljl[i].ri-ljl[i].le+1);
ljl[i].B=1ll*(ljl[i].ri-ljl[i].le)*(ljl[i].ri-ljl[i].le+1);
lst gcd=__gcd(ljl[i].A,ljl[i].B);
ljl[i].A/=gcd,ljl[i].B/=gcd;
} sort(ljl+1,ljl+m+1,cmp_id);
for(int i=1;i<=m;++i)
printf("%lld/%lld\n",ljl[i].A,ljl[i].B);
return 0;
}

小Z的袜子(题解)(莫队)的更多相关文章

  1. 小Z的袜子(莫队分块)题解

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

  2. Bzoj 2038: [2009国家集训队]小Z的袜子(hose) 莫队,分块,暴力

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

  3. 【国家集训队2010】小Z的袜子(莫队)

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

  4. kyeremal-bzoj2038-[2009国家集训队]-小z的袜子(hose)-莫队算法

    id=2038">bzoj2038-[2009国家集训队]-小z的袜子(hose) F.A.Qs Home Discuss ProblemSet Status Ranklist Con ...

  5. 【bzoj2038】[2009国家集训队]小Z的袜子(hose) 莫队算法

    原文地址:http://www.cnblogs.com/GXZlegend/p/6803860.html 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终 ...

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

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

  7. BZOJ2038: [2009国家集训队]小Z的袜子(hose) -- 莫队算法 ,,分块

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

  8. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) ( 莫队 )

    莫队..先按sqrt(n)分块, 然后按块的顺序对询问排序, 同块就按右端点排序. 然后就按排序后的顺序暴力求解即可. 时间复杂度O(n1.5) --------------------------- ...

  9. 【洛谷】1494:[国家集训队]小Z的袜子【莫队】

    P1494 [国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… ...

随机推荐

  1. python常用模块学习1

    import time time.sleep(1)#暂停时间 time.time()#显示当前系统时间戳 t=time.localtime()#结构化当地时间,可以将结构化时间想象成一个类 print ...

  2. 11JSP基础

    1.Jsp基础 1.1 简介 Jsp,全称 Java Server Page java服务页面,能提供java服务的页面 jsp vs html html: 由html标签组成的,输出静态内容. js ...

  3. 【学习】011 JVM参数调优配置

    自动内存管理机制 Java虚拟机原理 所谓虚拟机,就是一台虚拟的机器.他是一款软件,用来执行一系列虚拟计算指令,大体上虚拟机可以分为 系统虚拟机和程序虚拟机, 大名鼎鼎的Visual Box.Vmar ...

  4. 【LeetCode】位运算 bit manipulation(共32题)

    [78]Subsets 给了一个 distinct 的数组,返回它所有的子集. Example: Input: nums = [,,] Output: [ [], [], [], [,,], [,], ...

  5. JS基础入门篇(七)—运算符

    1.算术运算符 1.算术运算符 算术运算符:+ ,- ,* ,/ ,%(取余) ,++ ,-- . 重点:++和--前置和后置的区别. 1.1 前置 ++ 和 后置 ++ 前置++:先自增值,再使用值 ...

  6. 修改Win7登陆界面墙纸

    修改Win7登陆界面墙纸 修改注册表.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W ...

  7. 获取不到最新的url地址展示图片可以盖时间戳

    如:  $("#"+attachId).on('click', function() {                 params1 = [];                 ...

  8. Linux学习-MySQL的主从复制高可用性解决方案MHA

    一.MHA简介 1.MHA Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点:通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现, ...

  9. CKEDITOR Copying images from word

    自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...

  10. Python_004(列表和元组)

    一.列表 1. 列表: 列表的创建:li = [],列表中可以放置字符串,元组,列表,字典,列表等各种数据类型,32位的Python可以存放2^32个数据 2. 列表的索引和切片 列表的索引:格式ls ...