小Z的袜子(题解)(莫队)
小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的袜子(题解)(莫队)的更多相关文章
- 小Z的袜子(莫队分块)题解
小Z的袜子(hose) 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...
- Bzoj 2038: [2009国家集训队]小Z的袜子(hose) 莫队,分块,暴力
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 5763 Solved: 2660[Subm ...
- 【国家集训队2010】小Z的袜子(莫队)
题面 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把 ...
- kyeremal-bzoj2038-[2009国家集训队]-小z的袜子(hose)-莫队算法
id=2038">bzoj2038-[2009国家集训队]-小z的袜子(hose) F.A.Qs Home Discuss ProblemSet Status Ranklist Con ...
- 【bzoj2038】[2009国家集训队]小Z的袜子(hose) 莫队算法
原文地址:http://www.cnblogs.com/GXZlegend/p/6803860.html 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7687 Solved: 3516[Subm ...
- BZOJ2038: [2009国家集训队]小Z的袜子(hose) -- 莫队算法 ,,分块
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 3577 Solved: 1652[Subm ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) ( 莫队 )
莫队..先按sqrt(n)分块, 然后按块的顺序对询问排序, 同块就按右端点排序. 然后就按排序后的顺序暴力求解即可. 时间复杂度O(n1.5) --------------------------- ...
- 【洛谷】1494:[国家集训队]小Z的袜子【莫队】
P1494 [国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… ...
随机推荐
- typescript总结
1,基础类型 { 布尔值,let isDone:Boolean=true; 数字,let decLiteral:number=true; 字符串,let name:string=" ...
- 使用Nginx代理和转发Websocket连接
1.Websocket 简介 WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端. 2.Nginx 简介 ...
- 利用python处理txt文件
前段时间做公司一个自动翻译项目需要处理大量的文案字段,手工去做简直不大可能(懒),因此借用python脚本自动化处理掉了,在此记录一下. import linecache def outputfile ...
- python基础--内置函数filter,reduce
movie_people=["sb+_alex","sb_wupeiqi","han"] # def filter_test(array): ...
- python3.7爬取墨菲定律保存在本地txt
#!/usr/local/bin/python3.7 # -*- coding: utf-8 -*- # @Time: 2019/07/15 # @Function 获取在线文本内容 import r ...
- AWD
扫描对方IP:ifconfig (先获取自己的IP)netdiscover -r 192.168.0.1/24 (扫描1~124的IP) 获取IP后:nmap -sV 192.168.0.104 ...
- [POJ1187] 陨石的秘密
问题描述 公元11380年,一颗巨大的陨石坠落在南极.于是,灾难降临了,地球上出现了一系列反常的现象.当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点.经过一番侦察,科学家们发现陨石 ...
- animation transition transform
animation:动画名称 花费时间 运动曲线 何时开始 播放次数 是否反方向 div{width:100px;height:100px;background:red;animation:move ...
- 英语单词deploy
来源——https://www.docker.com/ Leading companies rely on our container platform to build, manage and se ...
- web选择文件夹上传
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...