组合数学,概率与期望,数论 大概是我学的最差的几个板块吧…
Part 1 高斯消元
1.1 概述
最常见的当然是随机游走问题了…
• f u = ∑ p u , v ∗ ( f v + w u , v ) f_u=\sum p_{u,v}* (f_{v}+w_{u,v}) f u = ∑ p u , v ∗ ( f v + w u , v )
• 计算期望在这个节点上,停留多少步:f u = ∑ p v , u ∗ f v + [ u = S ] f_u=\sum p_{v,u}* f_v + [u=S] f u = ∑ p v , u ∗ f v + [ u = S ]
HNOI 2013 游走
SDOI 2012 走迷宫
1.2 Band Matrix
带宽:对于∀ ( i , j ) ∈ G , a i , j = 1 存 在 一 个 x , ( x , x ) ∈ G 且 ∣ i − x ∣ + ∣ j − x ∣ ≤ d \forall (i,j)\in G,a_{i,j}=1 存在一个x,(x,x)\in G且|i-x|+|j-x|\leq d ∀ ( i , j ) ∈ G , a i , j = 1 存 在 一 个 x , ( x , x ) ∈ G 且 ∣ i − x ∣ + ∣ j − x ∣ ≤ d ,当d d d 取到最小时就为Band Matrix的带宽。
https://blog.csdn.net/qq_39972971/article/details/80725873
CF ??? E
1.3 主元法(代入消元法)
主要用于网格图
1.4 概率生成函数
这东西好神奇啊…E ( z x ) = F ( z ) = ∑ i = 0 ∞ p i z i E(z^x)=F(z)=\sum_{i=0}^{∞}p_{i}z^i E ( z x ) = F ( z ) = i = 0 ∑ ∞ p i z i
我们知道:E ( x ) = ∑ i = 0 ∞ i × p i E(x)=\sum_{i=0}^{∞}i\times p_{i} E ( x ) = i = 0 ∑ ∞ i × p i F ′ ( x ) = ∑ i = 0 ∞ i × p i z i − 1 F'(x)=\sum_{i=0}^{∞}i\times p_{i}z^{i-1} F ′ ( x ) = i = 0 ∑ ∞ i × p i z i − 1
于是有E ( x ) = F ′ ( 1 ) E(x)=F'(1) E ( x ) = F ′ ( 1 ) 。
接下来是V a r ( X ) = E [ ( X − E [ X ] ) 2 ] = E [ X 2 ] − E 2 [ X ] Var(X)=E[(X-E[X])^2]=E[X^2]-E^2[X] V a r ( X ) = E [ ( X − E [ X ] ) 2 ] = E [ X 2 ] − E 2 [ X ] (我也不知道怎么来的)
我们又知道F ′ ′ ( x ) = ∑ i = 0 ∞ i ( i − 1 ) × p i z i − 2 = ∑ i = 0 ∞ ( i 2 − i ) × p i z i − 2 F''(x)=\sum_{i=0}^{∞}i(i-1)\times p_{i}z^{i-2}=\sum_{i=0}^{∞}(i^2-i)\times p_{i}z^{i-2} F ′ ′ ( x ) = i = 0 ∑ ∞ i ( i − 1 ) × p i z i − 2 = i = 0 ∑ ∞ ( i 2 − i ) × p i z i − 2
于是就可以凑出来:V a r ( X ) = F ′ ′ ( 1 ) + F ′ ( 1 ) − ( F ′ ( 1 ) ) 2 Var(X)=F''(1)+F'(1)-(F'(1))^2 V a r ( X ) = F ′ ′ ( 1 ) + F ′ ( 1 ) − ( F ′ ( 1 ) ) 2
Part 2 期望线性性
Warm up 1
i-4.Max of N N N You roll a 6-sided die N times. Find EV of the biggest score.
A few possible solutions.
求在[1,m]离散变量中等概率随机n n n 次最大值期望
E ( X ) = ( 1 + m ) n n + 1 E(X)=(1+m)\frac{n}{n+1} E ( X ) = ( 1 + m ) n + 1 n
sol:E ( X ) = ∑ i = 1 n ( i − 1 n − 1 ) ( m n ) = n ( m + 1 n + 1 ) ( m n ) = ( m + 1 ) n n + 1
\begin{aligned}
E(X)&=\frac{\sum^{n}_{i=1}\binom{i-1}{n-1}}{\binom{m}{n}}\\
&=n\frac{\binom{m+1}{n+1}}{\binom{m}{n}}\\
&=(m+1)\frac{n}{n+1}\\
\end{aligned}
E ( X ) = ( n m ) ∑ i = 1 n ( n − 1 i − 1 ) = n ( n m ) ( n + 1 m + 1 ) = ( m + 1 ) n + 1 n
ii-4.Math encoder (Code Jam Kickstart 2017 round B) You are given a sequence of N N N numbers (N ≤ 2000 N ≤ 2000 N ≤ 2 0 0 0 or N ≤ 1 0 5 N ≤ 10^5 N ≤ 1 0 5 ). We’re to choose one of 2 N − 1 2^N - 1 2 N − 1 non-empty subsets, uniformly at random. Find EV of the difference between the maximum and minimum element in the subset.
Equivalently: Find the sum over the difference over all subsets, and print the answer modulo 1 0 9 + 7 10^9 + 7 1 0 9 + 7 .
从一个集合里面等概率选出一个非空子集,问E [ M A X − M I N ] E[MAX-MIN] E [ M A X − M I N ] 。
sol:
根据期望的线性性再分别求解即可E ( M A X − M I N ) = E ( M A X ) − E ( M I N ) = ∑ i = 1 n a i × 2 i − 1 2 n − 1 − ∑ i = 1 n a i × 2 n − i 2 n − 1
\begin{aligned}
E(MAX-MIN)&=E(MAX)-E(MIN)\\
&=\frac{\sum^{n}_{i=1}a_i\times 2^{i-1}}{2^n-1}-\frac{\sum^{n}_{i=1}a_i\times 2^{n-i}}{2^n-1}\\
\end{aligned}
E ( M A X − M I N ) = E ( M A X ) − E ( M I N ) = 2 n − 1 ∑ i = 1 n a i × 2 i − 1 − 2 n − 1 ∑ i = 1 n a i × 2 n − i
6.Randomizer (CF 313 D) You’re given a convex polygon with N vertices (N ≤ 2000 N ≤ 2000 N ≤ 2 0 0 0 or N ≤ 1 0 5 N ≤ 10^5 N ≤ 1 0 5 ). We choose a random subset of vertices, what gives us a new (small) convex polygon. Find EV of the perimeter of the new polygon.
Well, the CF problem was a bit harder, with computing area and using Pick’s theorem.
给你个多边形,随机选一个子集,求组成新的多边形的期望周长
sol:O ( n 2 ) O(n^2) O ( n 2 )
枚举一条边( i , j ) (i,j) ( i , j ) ,计算它在多边形上出现的概率乘权值即可:∑ i ∑ j l e n × ( 1 2 ) 2 × ( 1 2 ) j − i − 1 \sum_{i}\sum_{j}len\times (\frac{1}{2})^2\times (\frac{1}{2})^{j-i-1} i ∑ j ∑ l e n × ( 2 1 ) 2 × ( 2 1 ) j − i − 1 O ( n ) O(n) O ( n )
原题求内部整点个数:
根据Pick定理:S(网格图面积)=X(内部整点个数)+b 2 \frac{b}{2} 2 b (边上整点个数/2)-1E [ X ] = E [ S ] − E [ b ] 2 + 1 E[X]=E[S]-\frac{E[b]}{2}+1 E [ X ] = E [ S ] − 2 E [ b ] + 1
于是成了求面积和边上整点期望。
面积我们使用叉积表示就好了。
因为输出double…因此太远的由于精度可以直接忽略…
8.Eating ends You’re given a sequence of length N (N ≤ 2000 N ≤ 2000 N ≤ 2 0 0 0 or N ≤ 1 0 5 N ≤ 10^5 N ≤ 1 0 5 ). N − 1 N - 1 N − 1 times we will remove the first or the last element, each with p p p -bility 50 % 50\% 5 0 % . Find EV of the last remaining number.
Well, the implementation is hard because of precision issues.
给你一个长度为n n n 的队列,每次等概率删除队头或队尾,问剩余的数的期望。
sol:E [ X ] = ∑ i = 1 n a i × ( i − 1 n − 1 ) 2 n − 1 E[X]=\frac{\sum^{n}_{i=1}a_i\times \binom{i-1}{n-1}}{2^{n-1}} E [ X ] = 2 n − 1 ∑ i = 1 n a i × ( n − 1 i − 1 )
CF 280C
• 给出一棵含n个白点的有根树,每次随机选择一个还没有被染黑的节点吗,将这个节点和这个节点子树中的所有点染黑。
• 问期望操作多少次后所有点都被染黑。
E [ X ] = ∑ i = 1 n 1 d e p i E[X]=\sum^{n}_{i=1}\frac{1}{dep_i} E [ X ] = i = 1 ∑ n d e p i 1
CF1153F
• 给一个长度为l l l 的线段,随机选了n n n 条子线段,求至少被覆盖了k次的期望长度。
• n ≤ 2000 n\leq 2000 n ≤ 2 0 0 0
使用微元法,然后再用定积分积起来…E [ X ] = ∑ m ≤ k ∫ 0 1 ( n k ) ( 2 x × ( 1 − x ) ) k × ( 1 − 2 x × ( 1 − x ) ) n − k d x E[X]=\sum_{m\leq k}\int_0^1 \binom{n}{k}(2x\times (1-x))^k\times (1-2x\times (1-x))^{n-k} \mathrm{d}x E [ X ] = m ≤ k ∑ ∫ 0 1 ( k n ) ( 2 x × ( 1 − x ) ) k × ( 1 − 2 x × ( 1 − x ) ) n − k d x
多项式积分:∫ 0 1 x n = 1 n + 1 \int_0^1 x^n=\frac{1}{n+1} ∫ 0 1 x n = n + 1 1
于是我们将多项式暴力展开后积分…这东西可以用dp实现…
它还可以优化到O ( n log n ) O(n\log n) O ( n log n )
CF 235 D
好神仙的思路…
分治FFT优化:CCPC-Wannafly Winter Camp Day2 A.Erase Nodes(不可能是有生之年系列)
CF 457 D
做过的题.
random
• 有个长度为n的排列,每次随机选择一对相邻逆序对,然后交换,代价是下标,问期望代价。
GU
CTSC2013 没头脑与不高兴
为什么要拿和我同类的人来当主人公呢
• 随机一个排列,指定若干个位置会排好序。问逆序对个数的期望。
• 每次会选择覆盖一个区间作为排好序的位置或者取消一段区间。
Projecteuler 584
没听懂
Projecteuler 522
2.2 期望的平方/方差
Warm up 2
时间太紧,真没法听了