bsoj5988 [Achen模拟赛]期望 题解
Description
【题目背景】
NOI2018 已经过去了许久,2019 届的 BSOIer 们退役的退役,颓废的颓废,计数能力大不如前。曾经的数数之王 xxyj 坦言:“我现在算期望都靠枚举”,嘴边还挂着什么“分布列”,什么“样本数据”,然后又继续投身于文化课学习中了。
为了让 OI 的火炬传递下去,苣蒻 AChen 决定将 xxyj 退役前随口提到的期望问题交给你来解决。
【题目描述】
现有 m + 1 个白色的小球排成一列并从一开始编号。每次操作从前 m 个小球中随机选择一个涂黑。现在执行了 n 次操作,则编号最小的白球编号的期望是多少?Input
从文件 mex.in 中读入数据。
输入共一行两个整数 n,m。表示操作次数和白色小球的个数Output
输出到文件 mex.out 中。
若最小的白球编号的期望为 E,则输出一行表示:((m^n)* E) mod (10^9 + 7)
可以看出上式一定是个整数。Sample Input
1 1
Sample Output
2
Hint
n <= 10^9, m <= 10^6
Source
Achen
%%%AChen队爷%%%
考察对容斥的基础理解,挺不错的一题
易列答案式
\]
对这种期望,常使用套路化法
\]
和式里面相当于要求已钦定\(i\)个确定的球,求随机选\(n\)次将这\(i\)个球全部染黑的概率。
考虑容斥。先随便选,然后减去一个球未染的,然后加上两个球未染的,...
\]
(其实是一个类似二项式反演的容斥)
更换枚举
\]
又由组合数的性质
\]
(容易通过杨辉三角和组合数的递推式证明)
得
\]
直接计算即可。
数据量如果更大的话,可以线筛出所有\(n\)次幂以省掉快速幂的$\log $。偷懒不写了(
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<cstdlib>
#include<algorithm>
#include<queue>
#include<vector>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
const ll MOD=1E9+7;
ll QPow(ll x,ll up){
x%=MOD;
ll ans=1;
while(up)
if(up%2==0) x=x*x%MOD,up=up/2;
else ans=ans*x%MOD,up--;
return ans;
}
ll Inv(ll x){
return QPow(x,MOD-2);
}
const ll MXN=1E6+5;
ll fac[MXN],facInv[MXN];
void FacInit(ll n){
fac[0]=1;for(ll i=1;i<=n;i++) fac[i]=fac[i-1]*i%MOD;
facInv[n]=Inv(fac[n]);for(ll i=n-1;i>=1;i--) facInv[i]=facInv[i+1]*(i+1)%MOD;
facInv[0]=1;
}
ll C(ll n,ll m){
if(n<m) return 0;
return fac[n]*facInv[m]%MOD*facInv[n-m]%MOD;
}
ll N,M;
int main(){
scanf("%lld%lld",&N,&M);
FacInit(M+1);
ll Ans=0;
for(ll k=0;k<=M;k++){
ll p=1;if(k%2==1) p=(-1+MOD)%MOD;
Ans+=p*QPow(M-k,N)%MOD*C(M+1,k+1)%MOD;
Ans%=MOD;
}
printf("%lld",Ans);
return 0;
}
bsoj5988 [Achen模拟赛]期望 题解的更多相关文章
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- 2020.3.23 模拟赛游记 & 题解
这次的模拟赛,实在是水. 数据水,\(\texttt{std}\) 水,出题人水,做题人也水.??? 游记就说一句: 水. T1 metro 弱智题. 人均 \(100pts\). #pragma G ...
- 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解
传送门 听说比赛的时候T4T4T4标程锅了??? WTF换我时间我要写T3啊 于是在T4T4T4调半天无果的情况下260pts260pts260pts收场真的是tcltcltcl. T1 快速多项式变 ...
- NOIP模拟赛10 题解
t3: 题意 给你一棵树,然后每次两种操作:1.给一个节点染色 : 2. 查询一个节点与任意已染色节点 lca 的权值的最大值 分析 考虑一个节点被染色后的影响:令它的所有祖先节点(包括自身)的所有除 ...
- BJOI 模拟赛 #3 题解
T1 一个网格,每个点有权值,求有多少条路径权值乘积不小于 $n$ $R,C \leq 300, n \leq 10^6$ sol: 暴力 dp 是 $O(R \times C \times n)$ ...
- BJOI 2019 模拟赛 #2 题解
T1 完美塔防 有一些空地,一些障碍,一些炮台,一些反射镜 障碍会挡住炮台的炮, 反射镜可以 90° 反射炮台的光线,炮台可以选择打他所在的水平一条线或者竖直一条线 求是否有一组方案满足每个空地必须要 ...
- 【CYH-02】noip2018数论模拟赛:赛后题解
1.小奔的矩阵 2.大奔的方案 3.小奔与不等四边形 4.小奔的方案 当然本次比赛肯定难度不会仅限于此啦!后续还会--
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- 18/9/21模拟赛-Updated
18/9/21模拟赛 期望得分:100:实际得分:0 qwq 拿到题目第一眼,我去,这不是洛谷原题(仓鼠找Sugar)吗 又多看了几眼,嗯,对,除了是有多组数据外,就是原题 然后码码码....自以为 ...
随机推荐
- 扛把子组2018092609-2 选题 Scrum立会报告+燃尽图 04
此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/8682] 一.小组情况组长:迟俊文组员:宋晓丽 梁梦瑶 韩昊 刘信鹏队名 ...
- java集合讲解
java集合讲解 1.概述 集合类的顶级接口是Iterable,Collection继承了Iterable接口 常用的集合主要有 3 类,Set,List,Queue,他们都是接口,都继于Collec ...
- java中大整型BigInteger及setBit和testBit方法
最近在修改公司之前的项目,在项目中遇到了权限校验的问题,代码中出现了BigInteger的setBit()testBit()方法,之前未接触过,所以了解了下BigInteger. 在Java中,由CP ...
- JAVA中数组Arrays类的常见用法
import java.util.Arrays; int[] array1={7,8,3,2,12,6,5,4}; 1. //克隆clone int[] array2=array1.clone() ...
- Kotlin实战案例:带你实现RecyclerView分页查询功能(仿照主流电商APP,可切换列表和网格效果)
随着Kotlin的推广,一些国内公司的安卓项目开发,已经从Java完全切成Kotlin了.虽然Kotlin在各类编程语言中的排名比较靠后(据TIOBE发布了 19 年 8 月份的编程语言排行榜,Kot ...
- web接口与restful规范
web接口 接口定义: 通过网络,规定了前后台信息交互规则的url链接,在web程序中也就是联系前台页面与后台数据库的媒介. 接口特点 url:长得像返回数据的url链接, 例如下面的搜索音乐 [ht ...
- iptables规则备份和恢复、firewalld的9个zone、以及firewalld关于zone和service的操作 使用介绍
第7周第5次课(5月11日) 课程内容: 10.19 iptables规则备份和恢复10.20 firewalld的9个zone10.21 firewalld关于zone的操作10.22 firewa ...
- TensorFlow2.0
安装开发环境 1.首先安装 anaconda(https://www.anaconda.com/) 2.修改anaconda的镜像源 conda config --add channels https ...
- 寻找键盘bug
被这句阻拦了
- 从零开始入门 K8s | 手把手带你理解 etcd
作者 | 曾凡松(逐灵) 阿里云容器平台高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 16 讲. 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 ...