目录spa
@(指望与几率)设计
独⽴事件:互相不影响的事件3d
\(E(xy)=E(x)*E(y)\) ,\(x\)和\(y\)互相独立递归
对于离散变量 X,\(P_{(X=K)}=P_{(X\le K)}-P_{(X\leq K-1)}\)游戏
\(E(x+y)=E(x)+E(y)\) 任意\(x,y\)
\[E(x+y)=\sum_i \sum_j P(x=i,y=j)(i+j)\]
\[\sum_i \sum_j P(x=i,y=j) i\]事件
\[=\sum_i i P(x=i)\]ip
j同理ci
获得
\[\sum_iiP(x=i)+\sum_jjP(x=j)\]it
\[=\sum_i \sum_j P(x=i,y=j) i+\sum_i \sum_j P(x=i,y=j) j\]class
\[\sum_i \sum_j P(x=i,y=j)(i+j)\]
\[=E(x+y)\]
在1~s的数中随机:
\[E(y)=\sum_i i P(y=i)\]
\[=\sum_i i (P(y<=i) - P(y<=i-1))\]
\[=\sum_i i((\frac{i}{s})^n-(\frac{i-1}{s})^n)\]
答案:指望为\(\frac{1}{p}\)次后发生
设X为次数
即证实\(E(x)=\frac{1}{p}\)
解1、\[P(x=i)=(1-p)^{i-1}*p\]
解2、\[P(x>=i)-P(x>=(i+1))=(1-p)^{i-1}*p\]
只用管前几回都失败了
\[P(x>=i)= (1-p)^{i-1}\]
\[\sum _{i=1}^{inf} ((1-p)^{i-1} -(1-p)^{i})*i\]
对于每一个\((1-p)^i\),只有两个,一个系数i,一个系数i+1
即原式等于
\[\sum_{i=0}^{inf} (1-p)^{-i}\]
此时运用前面等比数列到+inf的公式
\[=\frac{1}{1-(p-1)}\]
\[=\frac{1}{p}\]
放回与不放回都同样
定义
\[E(s)=\sum _i E(x_i) = E(\sum _i y_i*i) =\sum _iE(y_i*i)\]
也即
\[E(s)=T*\sum_i E(i) = \frac{m*(n+1)}{2}\]
其中
\[T=\sum E(y_i)=m\]
感性理解:每一个球没有区别
作指望题先找等价点,设置若干问题,再找不一样点间E关系(只推下一步)解方程
或者设置一种,把全部状况推完
彻底图上游走,一个点到另外一点的指望步数
\(1/n-1\)几率成功(每次都能走到其余每一个点)
跟抛硬币差很少,即每次\(1/n-1\)抛到正面,指望步数即为\(n-1\)
2n点 彻底二分图上游走,一个点到另外一点的指望步数
A:到同侧点步数
B:异侧点步数
\[B=\frac{1}{n}+\frac{n-1}{n}*(B+2)\]
\[A=(1+B)\]
而后解一下方程?
n点菊花图游走,根到x的指望步数
\[E=\frac{1}{(n-1)}+\frac{(n-2)}{(n-1)}*(2+E)\]
\[\frac{E}{(n-1)}=\frac{(2n-1)}{(n-1)}\]
\[E=(2n-1)\]构造200个点无向图,使得S到T指望 \(\ge1000000=100^3\)
E1要是\(O(n^2)\),搞100点的链从S到T,而后S端点搞100点彻底图即为\(100^3\)
每次随机⼀个 [1,n] 的整数,问指望⼏次能凑⻬全部数
\[\sum_i n/i\]
每次设已经抽出\(n-1\)个,要抽出没抽过的,成功几率\((n-i+1)/n\),指望次数为\(n/(n-i+1)\)
而后反过来枚举就行(式子比较简单)
随机⼀个⻓度为 \(n\) 的排列\(p\),求 \(p[1…i]\) 中 \(p[i]\) 是最⼤的数的几率
首先,\(i\)后面的数不影响答案
而后只要i取到长度为i的排列的最大的数就能够,前面怎么样都会比他小
显然\(1/i\)
问满⾜上⾯那个题的 i 的个数的平⽅的指望
\[\sum_{i!=j}1/ij+\sum_i 1/i\]
设\(X_i\)为i为是否知足条件的指望
显然X_i只有两种取值,0和1
就有\[x=\sum_i^nX_i\]
\[E(x^2)=E((\sum _i^nX_i)^2)\]
\[=E(\sum_i^n\sum_j^{n,i!=j}X_i*X_j+\sum_i^nX_i^2=X_i)\]
拆E,
\[=\sum_i^n\sum_j^{n,i!=j}E(X_i*X_j)+\sum_i^nE(X_i)\]
第一项,\(i\)不影响\(j\),直接套用3的几率乘一下
第二项更简单,直接求和
随机⼀个⻓度为 n 的排列 p,求它包含 w[1…m] 做为⼦序列/连续⼦序列的几率
第一问,
\[\frac{(n-m)!}{n!}*C(n,m) = \frac{1}{m!}\]
第二问:
取m个位置,第一个位置\(n\)种,第二个位置\(n-1\)种,乘到\(n-m+1\)种
在这m个位置中选正确\(w_i\)的几率即为\[\prod_{i=n-m+1}^n \frac{1}{i}= \frac{(n-m)!}{n!}\]
而后枚举开头位置,显然\(n-m+1\)个位置
\[\frac{(n-m+1)!}{n!}\]
有 n 堆⽯头,第 i 堆个数为 a[i],每次随机选⼀个⽯头而后把那⼀整堆都扔了,求第 1 堆⽯头指望第⼏次被扔
\[1+\sum_{i=2}^nP(A[i]<A[1])\]
随机⼀个⻓度为 n 的01串,每一个位置是 1 的几率是 p ,定义 X 是每段连续的 1 的⻓度的平⽅之和,求E[X]
定义\(X_i,Y_i\)
\(0->Y_{i+1}=0,X_{i+1}=X_i\)
\(1->Y_{i+1}=Y_{i}+1,X_{i+1}=X_i-Y_i^2+(Y_i+1)^2=X_i+2Y_i+1\)
要求的是\(E(X_n)\)
相似的,
\[E(X_n)=p*(E(X_{n-1})+2*E(Y_{n-1}+1))+(1-p)*E(X_{n-1})\]
给⼀个序列,每次随机删除⼀个元素,问 i 和 j 在过程当中相邻的几率、
即为\(i~j\) 中间的数排列,\(i,j\)在最后的方案数除以总数给定⼀棵树,将他的边随机⼀个顺序后依次插⼊,求 u,v 指望何时连通
假设路径长度为k,求路径上的边出现的最后一条的指望时间
假设在第i次加边时联通
\[\sum _k^{n-1} i*\frac{k!*C_{i-1}^{k-1}*(n-k-1)!}{(n-1)!}\]
也能够倒着来求几率指望
给 1…n 这 n 个数,每次随机选择⼀个还在的数而且删掉他的全部约数,求指望⼏次删完
题意:定义\(E(x)\)为是否在没被标记前被删掉的指望
被删掉的几率为\(P(x),E(x)=\frac{1}{P(x)}\)
则\(P(x)=\frac{1}{floor(n/x)}\)(x的倍数要在他以后删)
而后就套路线性拆开相加就能够了
有 N 个数 a[1…N],每次等几率选出两个数,而后合并成⼀个新的数放回来,获得的收益是新的数的值,求总收益的指望
\[E(s)=\sum_i^n E(x_i)*a_i\]
\(x_i:a_i\)对答案的贡献次数
\[E(x_i)=\sum _{j=1}^{n-1} \frac{2}{n-j+1}\]
即处理每次合并两个团时是否选到i所在的团
即在\(n-j+1\)个团中选两个团,蒟蒻我只能\(n^2\)处理
给定⼀个数列 W[1…N],随机⼀个排列 H,若是 H[i] ⽐ H[i-1] 和 H[i+1] 都⼤,就得到 W[i] 的收益,求指望收益
定义单次指望\(x_i\)
\[E(s)=\sum_i^n x_i\]
\[E(x_i)=w_i*P(h_i>max(h_{i-1},h_{i+1}))\]
某老师:显然P是三分之一啊。。。(?
给出⼀棵树,⼀开始每一个点都是⽩的,每次选⼀个⽩点将他⼦树⾥全部点染⿊,求指望⼏次染⿊整个树
\(\sum 1/dep[i]\) 他祖先的点要在以前删
有 N 个⿊球,M个⽩球,每次等几率取出⼀个球(不放回),将取出来的球的颜⾊写成⼀个01序列,求 ”01” 的指望出现次数
指望次数即为这个球和上一个球不一样的次数
在2~n+m这n+m-1个数中,考虑第i个数为1,几率为\(\frac{n}{n+m-1}\)
而后考虑第i-1个为0,几率为\(\frac{m}{n+m}\)
乘起来获得\(m*n/(m+n)\)
(我有点不会,待填坑
三维凸包点数指望啥的我就不写了,我也不会
设\(X_i\) 第i节课~第i+1节课的距离
老套路,
设\[E_s= \sum_{i=1}^{n-1}E(X_i)\]
0为不申请,1为申请
每种状况,令
0 0 \[d_1=dis[c_i][c_{i+1}]\]
1 0 \[d_2=(1-k_i)*dis[ci][c_{i+1}]+k_i*dis[d_i][c_{i+1}]\]
0 1 \[d_3=(1-k_{i+1}) dis[c_i][c_{i+1}] +k_{i+1}*dis[c_i][d_{i+1}]\]
1 1 \[d_4=(1-k_i)*(1-k_{i+1}) dis[c_i][c_{i+1}]+(1-k_i)k_{i+1}*dis[c_i][d_{i+1}]+(1-k_{i+1})k_i*dis[d_i][c_{i+1}]ki+k_i*k_{i+1}dis[d_i][d_{i+1}]\]
设计状态 \(f[i][j][0/1]\)为第i个教室,换了j次的指望长度,n*m 搞dp
此次换:\(f[i][j][1]=max(f[i-1][j-1][0]+d2,f[i-1][j-1][1]+d4)\)
此次不换:\(f[i][j][0]=max(f[i-1][j][0]+d1,f[i-1][j][1]+d3)\)
d1d2d3d4每次算,floyed预处理dis
(区间交定义:\(l_2<=r_1\))
考虑枚举 \(l2\) 算 \(r1<l2\)
令 \(g_r\) 为右端点 \(=r\) 的几率
\[g_r=\sum_{l<=r} P(l,r)\]
其中,\[P(l,r)= \frac{1}{n}*\frac{1}{n-l+1}\]
令 \(f\) 为 \(g\) 前缀和,枚举 \(l_2\) ,则有
\[P(r_1\leq l_2)=\sum _{i=1}^{l_2}g_i=f_{l_2}\]
因而再对 \(f\) 求和就能够了
n<=200,设直径为s
\[E(s)= \sum P(s=k)*k\]
\[ = \sum_k P(s=k)*\sum _{j=1}^k 1\]
\[=\sum_j 1* \sum_k^{k>=j} P(s=k)\]
\[=\sum_j P(s>=j)\]
\[P(s>=j)=1-P(s<j)\]
\(f[x][i]\)表示x点,直径\(<j\)几率
转移用树形\(On^2\) dp
即对于当前子树,枚举全部儿子递归处理
处理获得每一个儿子的f后两层枚举儿子的组合,再枚举深度,求出深度之和以及对应的几率
老师说这四O(n^2)的,可能我没理解到⑧
江下题意,
有\(n\)个球,⼀开始颜⾊是\(c[1…n]\),每次随机⼀对数\((i,j)\) 然
后\(c[j]=c[i]\),求让\(c\)所有相同的指望步数
\(x->x\) \(p_0\)
\(notx->x\) \(p_0\)
\(x->not x\) \(p_{-1}\)
\(not x ->x\) \(p_1\)
即 每种几率对应状况:
\(p_0\) :不影响
\(p_1\): 多一个
\(p_{-1}\)少一个
考虑\(f(x)\)为已经有\(x\)个匹配,要变成(便乘\(n\)个的指望步数
显然,\(f(n)=0;\)
对于\(a!=n\),有\[f(a)=p_0(1+f(a))+p_{-1} (1+f(a-1))+p_1(1+f(a+1))\]
而后移项使得能够把\(i-2,i-1\)转移到 \(i\) \(O(log_n)\) 矩阵快速幂
至于我为何不写转移矩阵呢?懒
(其实我作矩阵题都要先列整齐的式子而后再回顾一下举矩阵乘法是横着的仍是竖着的而后再举几个例子才能推出来
给定⼀个⻓度为 n 的 01 串,每次随机⼀个区间将⾥⾯全部
元素翻转,求 m 次操做后 1 的指望个数
令
\[s=\sum x_i\]
其中\(x_i\)为最后位置1或0
套路地运用线性性质,(下次我就不写这个了,真jr难敲)
\[E(s)= \sum E(x_i)\]
设\(P\)为随机区间包含某数几率,见上面另外一个区间题,最上面有目录
定义状态 \(f[i][1/0]\) 为第第i次操做1/0的指望个数
边界就是输入
\(f[i][v]+=f[i-1][v xor 1]*P\)
\(f[i][v]+=f[i-1][v]*(1-P)\)
有点口胡,可是看上去挺正确的哈
给 n 个点,随机选⼀个点集,求⼆维/三维凸包的指望点数
啥 是 凸 包 是 啥 (光速逃
好像据说能够枚举边而后判断半平面/线段是否只有一边有点?
不会,坏时代,来临力!(悲)
有 \(n\) 道题,第 \(i\) 题有 \(a[i]\) 个选项,标号是\(1…a[i]\),如今你认
真作完且彻底作对了这 \(n\) 题,可是抄答题卡时错位了,将
第 \(i\) 题的答案抄到了第\(i%n+1\)题上,如今你想知道,在题⽬正确答案选项随机的状况下,你期
望能对⼏道
\(n,a[i]\leq10^7\)
如上,\(E(s)= \sum E(x_i)\)
\(X_i\)为交换后第i题对不对,为\(0/1\)
显然,\(A_i\)中的取值与\(A_{i+1}\)中的取值无瓜,能够乘起来
因而考虑 \(i\) 对答案的贡献,交换后答案有\(min(A_i,A_j)\)种答案,\(j\) 取\(i \pmod n+1\)
\[E(i)=\frac{min(A_i,A_j)}{A_i*A_j}\]
而后求\(\sum E(i)\)就能够力
⼀个游戏有 n 个⼈,规则是这样的:
求⼀个⼈活着离开且⼀共被开了 k 枪的几率,\(n<=2000\)
定义状态:\(f[i][j]\) 为如今剩下\(i\)我的,前面有\(j\)我的(即开了 \(j\) 枪)
则有:
1.\(i\) 当场被前面的延迟子弹暴毙,\(j\) 不增长
\[f[i][j]*(1-(1-p)^j ) -->f[i-1][j]\]
2.\(i\) 是欧皇,遂开枪杀人
\[f[i][j]*(1-p)^j -->f[i-1][j+1]\]
初始:\(f[n][0]=1\),dp \(i\) 从大到小,\(j\) 从小到大枚举
输出答案对\(f[i][k]\)取max便可
敲了挺久的吧。。typora统计字数有11000,提醒你们能够分段敲,后面会很卡
可是敲一遍确实加深理解了,就是没时间实现代码(思考两小时,代码5分钟
仍是江一下套路吧
先定义目标状态指望\(E(s)\)
而后用线性性拆成若干个\(\sum E(x_{0,1,2,...})\)并分类
对于每一类找关系,同类求递推式或者直接算的式子,有时候解一下方程
次数多的时候用相乘和线性关系分析化简一下就能够了
最后但愿你们康的开心QwQ
敲的这么辛苦,不点个赞or水条评论or关注一下马?