正解:莫队

解题报告:

这是,传送门qwq

昂大概是莫队板子题?

首先可以推出来答案是(∑C(2,color[i]))/C(2,r-l+1)趴?挺显然的不解释了qwq

然后显然除数直接做就成,考虑怎么求被除数 ∑C(2,color[i])

可以发现从[l,r]到[l,r+1]只++color[r+1]然后就没有改变了呢,那答案就只用改变一点儿(懒得港多少了太容易算了...),所以考虑用莫队

似,似乎就没了?

好趴果然板子题没什么好讲的呢

(啊想起来,就是,这个代码我觉得不是最板子的?就是和书上的表述不太一样,但是我感觉书上的可能跑得快些...?哪天写个书上版本的补上来qwq

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i) const ll N=+;
ll n,m,c[N],len,cjkl,cjkr,cjkans,num[N];
struct qest{ll l,r,id,bl;}q[N];
struct an{ll bcs,cs;}ans[N]; inline ll read()
{
char ch=getchar();ll x=;bool y=;
while(ch!='-' && (ch<'' || ch>''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
}
inline bool cmp(qest gold,qest genius)
{
if(gold.bl==genius.bl)return gold.r<genius.r;
return gold.bl<genius.bl;
}
inline ll update(ll col,ll data){cjkans-=num[col]*(num[col]-)/;num[col]+=data;cjkans+=num[col]*(num[col]-)/;} int main()
{
n=read();m=read();len=sqrt(n);
rp(i,,n)c[i]=read();
rp(i,,m)q[i].l=read(),q[i].r=read(),q[i].id=i,q[i].bl=(q[i].l-)/len+;
sort(q+,q++m,cmp);cjkl=cjkr=q[].l;num[c[q[].l]]=;
rp(i,,m)
{
while(cjkl<q[i].l)update(c[cjkl],-),++cjkl;
while(cjkl>q[i].l)update(c[cjkl-],),--cjkl;
while(cjkr<q[i].r)update(c[cjkr+],),++cjkr;
while(cjkr>q[i].r)update(c[cjkr],-),--cjkr;
if(q[i].l==q[i].r)ans[q[i].id].bcs=,ans[q[i].id].cs=;
else{ans[q[i].id].bcs=cjkans,ans[q[i].id].cs=(q[i].r-q[i].l+)*(q[i].r-q[i].l)/;}
}
rp(i,,m)
{
ll t=__gcd(ans[i].bcs,ans[i].cs);if(t>)ans[i].bcs/=t,ans[i].cs/=t;
printf("%lld/%lld\n",ans[i].bcs,ans[i].cs);
}
return ;
}
//maye改死我了QAQ

然后感觉没什么好讲的板子题就这么让我改了一个多小时:D

洛谷P1494小Z的袜子 [国家集训队] 莫队的更多相关文章

  1. Bzoj2038/洛谷P1494 小Z的袜子(莫队)

    题面 Bzoj 洛谷 题解 考虑莫队算法,首先对询问进行分块(分块大小为\(sqrt(n)\)),对于同一个块内的询问,按照左端点为第一关键字,右端点为第二关键字排序.我们统计这个区间内相同的颜色有多 ...

  2. P1494 小Z的袜子 【普通莫队】

    我的第二道莫队题,对莫队又有了自己的看法. 在第一题的基础上之上,觉得莫队有个很关键的地方在于 莫队所维护的值是什么,怎么推出维护的公式来. 这道题就是这样,一开始还没自己推出公式来,也有几个坑点. ...

  3. 洛谷P1494 小Z的袜子

    题意:在[l, r]之中任选两个数,求它们相同的概率. 解: 莫队入门. 概率这个很好搞,就是cnt * (cnt - 1) / 2. 然后发现每次挪指针的时候,某一个cnt会+1或-1.这时候差值就 ...

  4. BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队

    BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无 ...

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

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

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

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 专题练习: http://acm.hust.edu.cn/vjudge/conte ...

  7. BZOJ2038 2009国家集训队 小Z的袜子(hose) 【莫队】

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

  8. [bzoj2038][2009国家集训队]小Z的袜子(hose)_莫队

    小Z的袜子 hose 2009-国家集训队 bzoj-2038 题目大意:给定一个n个袜子的序列,每个袜子有一个颜色.m次询问:每次询问一段区间中每种颜色袜子个数的平方和. 注释:$1\le n,m\ ...

  9. bzoj 2038 小Z的袜子(hose)(莫队算法)

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

随机推荐

  1. 【django】Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。

    问题描述:启动django服务时出现“Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试.”的错误 问题原因:8000端口被占用了 解决办法:默认启动的 ...

  2. redis资料

    http://snowolf.iteye.com/blog/1630697  征服redis配置 http://redis.readthedocs.org/en/latest/  redis命令参考 ...

  3. Apache Kafka 0.11版本新功能简介

    Apache Kafka近日推出0.11版本.这是一个里程碑式的大版本,特别是Kafka从这个版本开始支持“exactly-once”语义(下称EOS, exactly-once semantics) ...

  4. Servlet基本用法(二)接口和类

    一.摘要 本文主要简单介绍开发Servlet需要用到的接口和类. 二.ServletRequest和ServletResponse接口 当客户请求到来时,由容器创建一个ServletRequest对象 ...

  5. SQL - 只获取小时

    --时间小时加减 SELECT DATEADD(HOUR, -8, GETDATE()) FROM [Order] --使用convert转换时间格式获取小时,并转成int类型 SELECT CONV ...

  6. Material Design系列第三篇——Using the Material Theme

    Using the Material Theme This lesson teaches you to Customize the Color Palette Customize the Status ...

  7. Android程序对不同手机屏幕分辨率自适应的方法

    相信各位Android开发爱好者都知道,由于OEM之间的竞争,各种Android操作系统的手机简直就是琳琅满目,屏幕分辨率的差异可想而知.目前比较主流的有WVGA=800x480,HVGA=480x3 ...

  8. 【转】C++可变参数列表处理宏va_list、va_start、va_end的使用

    VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员: 1)va_list型变量: #ifdef     _M_ALPHA typedef    struct{ char* a0; /*po ...

  9. css3整理--border-radius

    1.border-radius 标准: border-top-left-radius: x y // 左上角,x 圆角水平半径, y 圆角垂直半径 border-top-right-radius:x ...

  10. 原生js--事件类型

    1.表单事件: submit事件 reset事件 click事件 change事件 focus事件(不冒泡) (IE和ES5支持冒泡的focusin) blur事件(不冒泡) (IE和ES5支持冒泡的 ...