luogu P1494 [国家集训队]小Z的袜子 ( 普 通 )
题目: 链接:https://www.luogu.org/problemnew/show/P1494
题意:一些袜子排成一排,每个袜子有固定的颜色。
每次询问在[l,r]的袜子中等概率选两只,求有多大的概率抽到两只一样颜色的。
思路: 其实 就是 求 莫队维护 一波 cnt[ i ] * cnt[ i ] 就是模板嘛
#include<bits/stdc++.h>
#define LL long long
using namespace std;
int c[],pos[];
LL num[],up[],dw[],ans,u,v,w;
struct note {
int l,r,id;
}a[];
bool cmp(note uu,note vv) {
if(pos[uu.l]==pos[vv.l]) return uu.r<vv.r;
return pos[uu.l]<pos[vv.l];
}
void updat(int x,int d) {
ans-=num[c[x]]*num[c[x]];
num[c[x]]+=d;
ans+=num[c[x]]*num[c[x]];
}
int main() {
int n,q;
scanf("%d %d",&n,&q);
int m=(int)sqrt(n);
for(int i=;i<=n;i++) {
scanf("%d",&c[i]);
pos[i]=(i-)/m;
}
for(int i=;i<=q;i++) {
scanf("%d %d",&a[i].l,&a[i].r); a[i].id=i;
}
sort(a+,a++q,cmp);
int l=;int r=; ans=; memset(num,,sizeof(num));
for(int i=;i<=q;i++) {
int in=a[i].id;
if(a[i].l==a[i].r) {
up[in]=,dw[in]=; continue;
} if(r<a[i].r) {
for(int j=r+;j<=a[i].r;j++) updat(j,);
}
else {
for(int j=r;j>a[i].r;j--) updat(j,-);
}
r=a[i].r; if(l<a[i].l) {
for(int j=l;j<a[i].l;j++) updat(j,-);
}
else {
for(int j=l-;j>=a[i].l;j--) updat(j,);
}
l=a[i].l; u=ans-a[i].r+a[i].l-;
v=(LL)(a[i].r-a[i].l+)*(a[i].r-a[i].l);
w=__gcd(u,v); u/=w; v/=w; up[in]=u; dw[in]=v;
}
for(int i=;i<=q;i++) printf("%lld/%lld\n",up[i],dw[i]);
return ;
}
luogu P1494 [国家集训队]小Z的袜子 ( 普 通 )的更多相关文章
- 【luogu P1494 [国家集训队]小Z的袜子】 题解
题目链接:https://www.luogu.org/problemnew/show/P1494 #include <cstdio> #include <algorithm> ...
- Luogu P1494 [国家集训队]小Z的袜子
比较简单的莫队题,主要是为了熟练板子. 先考虑固定区间时我们怎么计算,假设区间\([l,r]\)内颜色为\(i\)的袜子有\(cnt_i\)只,那么对于颜色\(i\)来说,凑齐一双的情况个数为: \( ...
- P1494 [国家集训队]小Z的袜子
题目 P1494 [国家集训队]小Z的袜子 解析 在区间\([l,r]\)内, 任选两只袜子,有 \[r-l+1\choose2\] \[=\frac{(r-l+1)!}{2!(r-l-1)!}\] ...
- P1494 [国家集训队]小Z的袜子/莫队学习笔记(误
P1494 [国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小\(Z\)每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小\(Z\)再也无法忍受这恼人的找袜子过程,于是他 ...
- P1494 [国家集训队]小Z的袜子(luogu)
P1494 小Z的袜子 终于了解了莫队算法(更专业的名称Square Root Decomposition of Queries) 莫队算法: 一般来说解决静态(实际上也有修改的但复杂度更高)的离线( ...
- 洛谷 P1494 [国家集训队] 小Z的袜子
题目概述: 小Z把N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬. 你的任务 ...
- P1494 [国家集训队]小Z的袜子(莫队)
题目链接:https://www.luogu.org/problemnew/show/P1494 题目大意:中文题目 具体思路:计算概率的时候,每一次是区间的移动,每一次移动,记得先将原来的记录的影响 ...
- 洛谷 P1494 [国家集训队]小Z的袜子(莫队)
题目链接:https://www.luogu.com.cn/problem/P1494 一道很经典的莫队模板题,然而每道莫队题的大体轮廓都差不多. 首先莫队是一种基于分块的算法,它的显著特点就是: 能 ...
- P1494 [国家集训队]小Z的袜子(莫队算法)
莫队板子 代码 #include <cstdio> #include <algorithm> #include <cstring> #include <cma ...
随机推荐
- (五)Spring 中的 aop
目录 文章目录 AOP概念 AOP原理 AOP术语 **`Spring`** 中的 **`aop`** 的操作 使用 `AspectJ` 实现 `aop` 的两种方式 AOP概念 浅理解 aop :面 ...
- WDS无人参与批量部署Ser 2008
WDS无人参与批量部署Ser 2008 对于其它windows镜像采用此方法也是可以实现的: 1. 准备工作: 虚拟机server2012一个: 地址192.168.1.1/24 Server2008 ...
- A司入职面试宝典
=公司介绍============================= 世界500强,每股股票2000刀. 面试难度:**** 加班程度:* =面试-流程介绍====================== ...
- 深度学习之卷积神经网络CNN及tensorflow代码实现示例
深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习 版权声明 ...
- 关于RESTful API
添几篇文章: 一.What Is REST? 二.RESTful API最佳实践 三.MS Azure——API Design 这些文章里面也推荐了一些关联文章,微软那篇最详细,非常值得一读.
- UML学习(四)-----状态图
状态图主要用于描述对象具有的各种状态.状态之间的转换过程以及触发状态转换的各种事件和条件. 1.状态图的组成 1.1 状态 主要用于描述一个对象在生命周期内的一个时间段.状态图中的状态包括状态名.内部 ...
- try,except,finally的用法
try,except,finally try...except形式:指定一个或多个异常处理器(异常子句).. 当在try子句中没有异常发生时,,异常处理器将不被执行. 当在try子句中有异常发生时,首 ...
- CentOS自动备份MySql
1.确认Crontab是否安装 service crond startcrontab -l 2.编写备份脚本 cd mkdir backup cd backup vim auto.sh /usr/bi ...
- Spring的启动流程
spring的启动是建筑在servlet容器之上的,所有web工程的初始位置就是web.xml,它配置了servlet的上下文(context)和监听器(Listener),下面就来看看web.xml ...
- 5.AOP配置与应用(annotation的方式)
步骤: a)在beans.xml文件中加上对应的xsd文件 spring-aop.xsd b)加上<aop:aspectj-autoproxy>,使用aspectj来完成aop <! ...