莫队:就是一坨软软的有弹性的东西Duang~Duang~Duang~

为了防止以左端点为第一关键字以右端点为第二关键字使右端点弹来弹去,所以让左端点所在块为关键字得到O(n1.5)的时间效率,至于分块的优化,根本用不到。

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#define MAXN 50005
using namespace std;
typedef long long LL;
struct Query
{
LL l,r,a,b,id;
}query[MAXN];
LL pos[MAXN];
int cmp(const Query a,const Query b)
{
return a.id<b.id;
}
int comp(const Query a,const Query b)
{
if(pos[a.l]<pos[b.l])return ;
if(pos[a.l]==pos[b.l]&&a.r<b.r)return ;
return ;
}
LL a[MAXN],s[MAXN],n,m,len,l,r,ans;
LL gcd(LL x,LL y)
{
return y==?x:gcd(y,x%y);
}
inline void did(LL x,LL di)
{
ans-=s[a[x]]*s[a[x]];
s[a[x]]+=di;
ans+=s[a[x]]*s[a[x]];
}
inline void work()
{
for(LL i=;i<=m;i++)
{
while(l<query[i].l)did(l++,-);
while(l>query[i].l)did(--l,);
while(r<query[i].r)did(++r,);
while(r>query[i].r)did(r--,-);
if(l==r)
{
query[i].a=;
query[i].b=;
continue;
}
LL son=ans-(r-l+);
LL mo=(LL)(r-l)*(r-l+);
LL k=gcd(son,mo);
query[i].a=son/k;
query[i].b=mo/k;
}
}
int main()
{
freopen("hose.in", "r", stdin);
freopen("hose.out", "w", stdout);
scanf("%lld%lld",&n,&m);
len=(LL)(sqrt(n+0.5));
l=r=ans=;
for(LL i=;i<=n;i++)
{
scanf("%lld",&a[i]);
pos[i]=(i-)/len+;
}
s[a[]]++;
for(LL i=;i<=m;i++)
{
scanf("%lld%lld",&query[i].l,&query[i].r);
query[i].id=i;
}
sort(query+,query++m,comp);
work();
sort(query+,query+m+,cmp);
for(LL i=;i<=m;i++)
printf("%lld/%lld\n",query[i].a,query[i].b);
return ;
}

【bzoj2038】[国家集训队2010]小Z的袜子 莫队的更多相关文章

  1. AC日记——[国家集训队2010]小Z的袜子 cogs 1775

    [国家集训队2010]小Z的袜子 思路: 传说中的莫队算法(优雅的暴力): 莫队算法是一个离线的区间询问算法: 如果我们知道[l,r], 那么,我们就能O(1)的时间求出(l-1,r),(l+1,r) ...

  2. 洛谷 1775. [国家集训队2010]小Z的袜子

    1775. [国家集训队2010]小Z的袜子 ★★★   输入文件:hose.in   输出文件:hose.out   简单对比时间限制:1 s   内存限制:512 MB [题目描述] 作为一个生活 ...

  3. 数据结构(莫队算法):国家集训队2010 小Z的袜子

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

  4. [国家集训队2010]小Z的袜子

    ★★★   输入文件:hose.in   输出文件:hose.out   简单对比 时间限制:1 s   内存限制:512 MB [题目描述] 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜 ...

  5. 1775. [国家集训队2010]小Z的袜子

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

  6. cogs1772 [国家集训队2010]小Z的袜子

    沉迷于文化的我N年没更blog了...(\(N \in (0,1)\)) 然后回到机房就沉迷于 \(generals.io\) 无法自拔...QAQ 然后想打一遍splay(然后是LCT),然后放弃了 ...

  7. 「国家集训队」小Z的袜子

    「国家集训队」小Z的袜子 传送门 莫队板子题. 注意计算答案的时候,由于分子分母都要除以2,所以可以直接约掉,这样在开桶算的时候也方便一些. 参考代码: #include <algorithm& ...

  8. 小Z的袜子 & 莫队

    莫队学习 & 小Z的袜子 引入 莫队 由莫涛巨佬提出,是一种离线算法 运用广泛 可以解决广大的离线区间询问题 莫队的历史 早在mt巨佬提出莫队之前 类似莫队的算法和莫队的思想已在Codefor ...

  9. 【国家集训队2010】小Z的袜子[莫队算法]

    [莫队算法][国家集训队2010]小Z的袜子 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程, ...

随机推荐

  1. node、npm安装教程

    描述: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Node.js 的使用包 ...

  2. Laravel -- Blade模板

    {{--流程控制--}} @if($name == '1') this is 1 @elseif($name == '2') this.is 2 @else who am i? @endif @for ...

  3. struts2学习

    struts2是一种基于mvc模式的轻量级web框架,它本质上相当于一个servlet,在mvc设计模式中,struts2作为控制器(Controller)来建立模型与视图的数据交互,struts2采 ...

  4. 怎么修复网站漏洞 骑士cms的漏洞修复方案

    骑士CMS是国内公司开发的一套开源人才网站系统,使用PHP语言开发以及mysql数据库的架构,2019年1月份被某安全组织检测出漏洞,目前最新版本4.2存在高危网站漏洞,通杀SQL注入漏洞,利用该网站 ...

  5. Drupal 网站漏洞修复以及网站安全防护加固方法

    drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置,drupal的代码开发较为严谨,安全性较高,但是再安全的网站系统,也会出现网站漏洞,dru ...

  6. COURSES POJ1469(模板)

    Description Consider a group of N students and P courses. Each student visits zero, one or more than ...

  7. .Net 面试题 汇总(三)

    101.ASP.net的身份验证方式有哪些?分别是什么原理? 答:Windwos(默认)用IIS... From(窗体)用帐户 Passport(密钥) 102.在.net中,配件的意思是? 答:程序 ...

  8. 当app出现线上奔溃,该如何办?

    1.如何追踪app崩溃率,如何解决线上闪退 当iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈跟踪信息和 ...

  9. 【连载】Maven系列(四)——配置私服

    相关文章 1.<用起来超爽的Maven——入门篇> 2.<用起来超爽的Maven——进阶篇> 3.<Maven系列(三) 进阶> 一.为什么需要私服 有些公司并不提 ...

  10. 【IOI 2002/FJOI2019】任务安排(超级计算机)

    题目 \(N\) 个任务排成一个序列在一台机器上等待完成(顺序不得改变),这 \(N\) 个任务被分成若干批,每批包含相邻的若干任务.从时刻 \(0\) 开始,这些任务被分批加工,第 \(i\) 个任 ...