洛谷P1494小Z的袜子 [国家集训队] 莫队
正解:莫队
解题报告:
这是,传送门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的袜子 [国家集训队] 莫队的更多相关文章
- Bzoj2038/洛谷P1494 小Z的袜子(莫队)
题面 Bzoj 洛谷 题解 考虑莫队算法,首先对询问进行分块(分块大小为\(sqrt(n)\)),对于同一个块内的询问,按照左端点为第一关键字,右端点为第二关键字排序.我们统计这个区间内相同的颜色有多 ...
- P1494 小Z的袜子 【普通莫队】
我的第二道莫队题,对莫队又有了自己的看法. 在第一题的基础上之上,觉得莫队有个很关键的地方在于 莫队所维护的值是什么,怎么推出维护的公式来. 这道题就是这样,一开始还没自己推出公式来,也有几个坑点. ...
- 洛谷P1494 小Z的袜子
题意:在[l, r]之中任选两个数,求它们相同的概率. 解: 莫队入门. 概率这个很好搞,就是cnt * (cnt - 1) / 2. 然后发现每次挪指针的时候,某一个cnt会+1或-1.这时候差值就 ...
- BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队
BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)【莫队算法裸题&&学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 9894 Solved: 4561[Subm ...
- 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 专题练习: http://acm.hust.edu.cn/vjudge/conte ...
- BZOJ2038 2009国家集训队 小Z的袜子(hose) 【莫队】
BZOJ2038 2009国家集训队 小Z的袜子(hose) Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼 ...
- [bzoj2038][2009国家集训队]小Z的袜子(hose)_莫队
小Z的袜子 hose 2009-国家集训队 bzoj-2038 题目大意:给定一个n个袜子的序列,每个袜子有一个颜色.m次询问:每次询问一段区间中每种颜色袜子个数的平方和. 注释:$1\le n,m\ ...
- bzoj 2038 小Z的袜子(hose)(莫队算法)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 11542 Solved: 5166[Sub ...
随机推荐
- iOS开发-获取子视图坐标系中Point、Rect在父视图坐标系中的实际值
iOS提供了方法来完成上述值得转换 convertRect:toView:, convertRect:FromView: convertPoint:toView: and convertPoint:f ...
- C#调用DLL报“试图加载格式不正确的程序”
项目右键属性->项目设计器->生成->平台->把'默认设置(任何 CPU)'改为x86或者x64
- 如何构建日均千万PV Web站点 (一)
其实大多数互联网网站起初的网站架构都是(Linux+Apache+MySQL+PHP). 不过随着时代的发展,科技的进步.互联网进入寻常百姓家的生活.所谓的用户的需求,铸就了一个个互联网大牛: htt ...
- flask + mysql写的简单监控系统
这里以监控内存使用率为例,写的一个简单demo性程序,具体操作根据51reboot提供的教程写如下. 一.建库建表 创建falcon数据库: mysql> create database fal ...
- 嵌入式之UBOOT
嵌入式Linux系统的结构分为四个区,如图所示: 1.Bootloader区存放的是Bootloader,Coidre972开发板上使用的uboot,它负责嵌入式系统最初的硬件初始化.驱动和内核加载. ...
- 【十大算法实现之naive bayes】朴素贝叶斯算法之文本分类算法的理解与实现
关于bayes的基础知识,请参考: 基于朴素贝叶斯分类器的文本聚类算法 (上) http://www.cnblogs.com/phinecos/archive/2008/10/21/1315948.h ...
- MFC 虚函数与消息映射区别
初学MFC添加函数时,总是纠结于是 Add windows message handler or Add virtual function 说到底不理解MFC中虚函数与消息处理函数的设计区别 本人理 ...
- 检测硬件RDMA卡是否存在
1.检查网卡是否安装成功: # lspci | grep Mellanox 83:00.0 Ethernet controller: Mellanox Technologies MT27710 Fam ...
- mvn deploy命令上传包
需求:有的时候需要单独上传release jar包,因为存在工程代码在A内网SVN,Nexus在B内网.这种情况下使用VPN也无法解决Jar包发布的问题. 这个时候采取的方式只能是: 打出jar包 - ...
- python中的null值
在一个没有接口文档的自动化测试中,只能通过抓包及查日志查看发送的信息,其中有一个接口发送的信息如下: enable_snapshot": true, "new_size" ...