CF probabilities 自制题单

CF probabilities

2000 ~ 2100

probilities - codeforces

1. Problem - 235B - Codeforces

不会写

随机生成长度为 n   ( n ≤ 1 0 5 ) n\ (n \le 10^5) n (n105) 01 01 01 串,定义串的分数是所有连续的 1 1 1 的长度平方和,比如 1100111 1100111 1100111 的分数是 2 2 + 3 2 2^2 + 3^2 22+32. 每个位置生成 1 1 1 的概率是 p i p_i pi. 问最后字符串的分数的期望.

可以转化成等价的组合问题. 对于每两个 1 1 1,如果其中间没有 0 0 0 的话,对答案的贡献是 2 2 2. 对于每个单独的 1 1 1,对答案的贡献是 1 1 1. 证明很简单,就是对于一段长度为 m m m 的连续的 1 1 1,其分数是 2 ∗ C m 2 + m = m 2 2 * C_{m}^{2} + m = m^2 2Cm2+m=m2. 然后就好算了,计算一下每个位置如果结尾是 1 1 1 的话对答案的贡献即可.

2. Problem - 204C - Codeforces

给两个长度为 n   ( n ≤ 2 × 1 0 5 ) n\ (n \le 2 \times 10^5) n (n2×105) 的字符串,从两个字符串中分别取出长度相同的子串 x , y x,y x,y,定义 f ( x , y ) f(x, y) f(x,y) 的值为 [ x i = = y i ] [x_i == y_i] [xi==yi] 的个数. 每个 ( x , y ) (x,y) (x,y) 都是等概率选取的. 求 f ( x , y ) f(x,y) f(x,y) 的期望.

可以转化为组合问题. 对每个字符进行统计,对于字符串 1 1 1 的某个字符 c c c,看在字符串 2 2 2 的哪些位置出现过. 设 c c c 在字符串 1 1 1 中出现的位置是 i d id id,则包含 c c c 的字符串个数就是 i d ∗ ( n − i d + 1 ) id * (n - id + 1) id(nid+1). 于是就和第二个字符串对比,看看 c c c 在字符串 2 2 2 出现的位置相对于 1 1 1 靠前还是靠后讨论即可.

3. Problem - 1525E - Codeforces

不会写

n   ( n ≤ 20 ) n\ (n \le 20) n (n20) 个城市, m   ( m ≤ 1 0 4 ) m\ (m \le 10^4) m (m104) 个点,给出每个点到每个城市的距离,每秒钟随机占领一个之前未占领城市,从占领城市那一刻起,距离城市距离为1的点被打上标记,第二秒距离城市为 2 的点被打上标记. 问所有城市都被占领的时候,被打上标记的点的期望.

E ( j ) E(j) E(j) 为第 j j j 个点被占领的期望。则答案就是 ∑ j = 1 m E ( j ) \sum\limits_{j=1}^{m}E(j) j=1mE(j). 那么显然 E ( j ) = P ( j ) E(j) = P(j) E(j)=P(j). P ( j ) P(j) P(j) 计算比较复杂需要容斥,但是 P ( j ) ‾ \overline{P(j)} P(j) 计算起来非常简单,我们只需要计算每个城市在多少秒之后占领后该点不会被覆盖,然后排个序。因为这些区间有规律,就是排完序之后,后面的区间一定覆盖前面的区间,因此直接累乘即可.

4. Problem - 1265E - Codeforces

看了提示

n n n 个镜子,有一个人每天询问一个镜子,第 i i i 个镜子会有 p i p_i pi 的概率说美丽, 1 − p i 1 - p_i 1pi 的概率说不美丽。如果说美丽,下一天就问第 i + 1 i + 1 i+1 个镜子(如果 i = n i = n i=n 的时候就停止询问). 如果说不美丽,下一天就重新从第 1 1 1 个镜子开始问. 问询问天数的期望.

其实就是在第 i i i 个点,有 p i p_i pi 的概率到第 i + 1 i + 1 i+1 个点,有第 1 − p i 1 - p_i 1pi 的概率回到第 1 个点. 其实就是求从 1 1 1 号点到 n n n 号点的路径长度的期望.
那么
e 1 = 1 + p 1 ⋅ e 2 + ( 1 − p 1 ) ⋅ e 1 e 2 = 1 + p 2 ⋅ e 3 + ( 1 − p 2 ) ⋅ e 1 . . . e n = 1 + p n ⋅ e n + 1 + ( 1 − p n ) ⋅ e 1 e_1 = 1 + p_1 \cdot e_2 + (1-p_1)\cdot e_1 \\ e_2 = 1 + p_2 \cdot e_3 + (1-p_2)\cdot e_1 \\ ...\\ e_n = 1 + p_n \cdot e_{n+1} + (1-p_n)\cdot e_1 e1=1+p1e2+(1p1)e1e2=1+p2e3+(1p2)e1...en=1+pnen+1+(1pn)e1

可以接出来
e 1 = 1 + p 1 + p 1 p 2 + . . . + p 1 p 2 . . . p n − 1 p 1 p 2 . . . p n e_1 = \dfrac{1 + p_1 + p_1p_2 + ...+p_1p_2...p_{n-1}}{p_1p_2...p_n} e1=p1p2...pn1+p1+p1p2+...+p1p2...pn1

5. Problem - 1039B - Codeforces

交互题

给一个 1 ∼ n   ( n ≤ 1 0 18 ) 1 \sim n \ (n \le 10^{18}) 1n (n1018) 的数轴,有一个点在数轴上,每次可以询问一个区间 [ l , r ] [l, r] [l,r],会回答这个点是否在这个区间之内。然后这个点随机移动不超过 k   ( k ≤ 10 ) k \ (k \le 10) k (k10) 步,会移动到 min ⁡ ( 1 , x − k ) ∼ max ⁡ ( n , x + k ) \min(1, x - k) \sim \max(n, x + k) min(1,xk)max(n,x+k) 之间. 现在问不超过 4500 4500 4500 次,求那个点在哪个位置.

6. Problem - 1009E - Codeforces

数轴上从0出发到n,值为 1 ∼ n − 1 1 \sim n-1 1n1 的点中均可以休息,也可以不休息。现在给定一个数组 a[ ],a[i]表示走长度为i的距离的困难度(保证 a [ i + 1 ] > a [ i ] a[i+1]>a[i] a[i+1]>a[i]),设每种情况出现的可能性均相同,求所有可能性的期望困难度之和 p ∗ 2 n − 1 p*2^{n-1} p2n1

组合计数即可,就是枚举每个位置取到 a 1 a_1 a1 有多少种情况,取到 a 2 a_2 a2 有多少种情况等。累加答案即可.

7. Problem - 912D - Codeforces

n × m   ( 1 ≤ n , m ≤ 1 0 5 ) n \times m \ (1 \le n, m \le 10^5) n×m (1n,m105) 大小的池塘,每个格子最多放一个鱼,总共放 k   ( k ≤ 1 0 5 ) k\ (k \le 10^5) k (k105) 条鱼,现在给一张 r × r r \times r r×r 的网,网随机投放。问怎样放鱼,可以使网捞上来的鱼的数量的期望最大。

这个期望就等于每个位置被覆盖的期望之和,等于每个位置被覆盖的概率之和. 然后就找最大的 k k k 个位置就可以了. 其实非常简单,我想复杂了,根本不用复杂贪心,只需要把最中间的位置放在优先队列里面,然后一圈一圈往外扩就行。这个复杂度是可以保证的。因为先弹出来的点都是比较靠近中心的,他四周的点很可能已经被访问过了,所以能够进队的格点不会太多.

8. Problem - 870D - Codeforces

交互题

9. Problem - 859D - Codeforces

2 n   ( 2 ≤ n ≤ 6 ) 2^n\ (2 \le n \le 6) 2n (2n6) 个队伍,给出它们比赛的两两之间胜利的概率,每次比赛都可以赌哪支队伍获胜,使得获得的分数最多。有一个限制是选如果赌了一支队伍后后面每场比赛都要赌这支队伍。比赛总共进行 n n n 轮,每轮第 2 i − 1 2i - 1 2i1 支和第 2 i 2i 2i 支队伍比赛,第 m m m 场比赛 猜对了可以获得 2 m − 1 2^{m-1} 2m1 分.

这个题和 Football 很像,可以设 f ( x , i ) f(x, i) f(x,i) 为第 x x x 支队伍在第 i i i 轮获胜的概率. 那么每一轮比赛,此队伍的对手都可以事先知道. 然后从后往前算一遍就行了. 后面获胜概率大的队伍必选.

10. Problem - 452C - Codeforces

m m m 副一样的扑克牌,每副扑克牌有 n n n 张不同的牌 ( 1 ≤ n , m ≤ 1 0 3 ) (1 \le n, m \le 10^3) (1n,m103). 现在把他们混合后随机抽出来 n n n 张,然后问有放回的随机抽两张,扑克牌相同的概率是多少.

n n n 张牌都是一样的。比如计算扑克牌 1 1 1,枚举抽取的 n n n 张牌中有多少张扑克牌 1 1 1.

最后答案就是 ∑ i = 1 min ⁡ ( n , m ) C m i C m n − m n − i C m n n ( i n ) 2 \sum\limits_{i = 1}^{\min(n, m)} \dfrac{C_{m}^{i}C_{mn - m}^{n-i}}{C_{mn}^{n}} (\dfrac{i}{n})^2 i=1min(n,m)CmnnCmiCmnmni(ni)2

但是这个题有一个问题就是答案输出的不是取模,而是小数。中间结果会出现 1 0 6 ! 10^6! 106! 这么大的数字,浮点数存不下. 不过仍有一个办法,就是先取对数在求指数。至少在这个题,这么做的精度还是够的.

11. Problem - 268E - Codeforces

n n n 个歌曲,第 i i i 个歌曲的长度为 l i l_i li,小明喜欢的概率是 p i p_i pi. 现在小明听歌,如果小明喜欢这首歌,就把它加入喜欢的列表中;否则,就从新把喜欢的歌听一遍再听下一首歌. 问怎样排序使得听歌时间的期望最大?求这个最大期望.

假设有 l 1 , p 1 l_1, p_1 l1,p1 l 2 , p 2 l_2, p_2 l2,p2,按照 ( 1 − p 2 ) l 1 p 1 (1-p_2)l_1p_1 (1p2)l1p1 降序排序即可. 然后第 i i i 首个的贡献就是 l i + ( 1 − p i ) ∑ j = 1 i − 1 l j ∗ p j l_i + (1-p_i) \sum\limits_{j=1}^{i-1}l_j*p_j li+(1pi)j=1i1ljpj.

2200 ~ 2300

probilities - codeforces

1. Problem - 1245E - Codeforces

给一个 10 × 10 10 \times 10 10×10 的网格,一个人从下往上沿 S S S 型往上走,每次可以掷色子,即等概率的走 1 ∼ 6 1 \sim 6 16 步. 有一些网格点有梯子,可以直接上去不需要掷色子。但是注意一个回合只能走一个梯子,不可以连续走梯子。另外一个限制就是当剩余的格子小于所置的色子的点数时,就原地不动.

概率 d p dp dp 裸题了,但是注意两个限制。由于不可以连续爬两个梯子,所以可以用 f ( i , 2 ) f(i, 2) f(i,2) 表示在 i i i 号点是掷色子过来的还是爬梯子过来的。然后剩余格子不够的时候原地不动,设剩余 x x x 个,则
d p i = 1 6 ∑ j = 1 x d p j + 6 − x 6 d p i + 1 dp_i = \dfrac{1}{6}\sum\limits_{j=1}^{x} dp_j + \dfrac{6-x}{6} dp_i + 1 dpi=61j=1xdpj+66xdpi+1
移项就解决循环依赖问题了.

2. Problem - 1172C1 - Codeforces

看了提示
n n n 张照片,第 i i i 张照片的权重是 w i w_i wi,每张照片的有属性 0 / 1 0/1 0/1. 0 0 0 表示这个人不喜欢此照片, 1 1 1 表示这个人喜欢此照片。一个人有放回地随机抽取照片,第 i i i 张照片抽到地概率是 w i ∑ j = 1 n w j \frac{w_i}{\sum_{j=1}^nw_j} j=1nwjwi. 若抽到喜欢的照片,把此照片权重+1,否则-1. 求抽取 m m m 次后每张照片的权重的期望. 1 ≤ n , m , w i ≤ 50 1 \le n, m, w_i \le 50 1n,m,wi50.

d p ( w , i , j , k , t ) dp(w, i, j, k, t) dp(w,i,j,k,t) 为权重为 w w w,类型为 t t t,操作了 i i i 次,不喜欢照片权重的总和为 − j + S 0 -j + S0 j+S0,喜欢照片权重总和为 k + S 1 k + S1 k+S1. 然后很容易列出来状态转移方程,就写完了.

3. Problem - 1156F - Codeforces

看了提示

n   ( 2 ≤ 5000 ) n \ (2 \le 5000) n (25000) 张牌,第 i i i 张牌上写 a i a_i ai,每次随机抽取一张牌 x x x 和上一张牌 y y y 比较,如果 x < y x < y x<y,游戏失败并结束;如果 x = y x = y x=y 游戏胜利并结束;如果 x > y x > y x>y,游戏继续;若没有牌则游戏失败. 问游戏胜利概率.

f ( i , j ) f(i, j) f(i,j) 为抽 i i i 张牌,最后一张牌抽的是 j j j 的概率. 那么 f ( i , j ) = ∑ k = 1 j − 1 f ( i − 1 , k ) × s z j n − i + 1 f(i, j) = \sum\limits_{k=1}^{j - 1}f(i-1, k) \times \dfrac{sz_j}{n - i + 1} f(i,j)=k=1j1f(i1,k)×ni+1szj.

4. Problem - 1151F - Codeforces

不会写

给一个长度为 n   ( n ≤ 100 ) n\ (n\leq 100) n (n100) 0 / 1 0/1 0/1 串,进行 k   ( k ≤ 1 0 9 ) k\ (k \leq 10^9) k (k109) 次操作,每次操作选择两个位置 i , j   ( 1 ≤ i < j ≤ n ) i,j\ (1 \leq i < j \leq n) i,j (1i<jn),交换 i , j i,j i,j 上的数,求 k k k 次操作后,该 0 / 1 0/1 0/1 串变成非降序列的概率,答案对 1 0 9 + 7 10^9+7 109+7 取模。

设该序列有 c u r cur cur 0 0 0,设 d p ( i , j ) dp(i, j) dp(i,j) 为第 i i i 次操作的时候,前 c u r cur cur j j j 0 0 0 的方案数,很容易写出递推方程

d p ( i , j ) + = d p ( i − 1 , j − 1 ) ∗ ( c u r − ( j − 1 ) ) 2 d p ( i , j ) + = d p ( i − 1 , j ) ∗ ( C c u r 2 + C n − c u r 2 + j ∗ ( c u r − j ) + ( c u r − j ) ∗ ( n + j − 2 ∗ c u r ) ) d p ( i , j ) + = d p ( i − 1 , j + 1 ) ∗ ( j + 1 ) ∗ ( n + ( j + 1 ) − 2 ∗ c u r ) dp(i , j) += dp(i - 1, j - 1) * (cur - (j - 1))^2 \\ dp(i, j) += dp(i - 1, j)* (C_{cur}^{2} + C_{n-cur}^{2} + j * (cur - j) + (cur - j) * (n + j - 2 * cur)) \\ dp(i, j) += dp(i - 1, j + 1) * (j + 1) * (n + (j + 1) - 2 * cur) dp(i,j)+=dp(i1,j1)(cur(j1))2dp(i,j)+=dp(i1,j)(Ccur2+Cncur2+j(curj)+(curj)(n+j2cur))dp(i,j)+=dp(i1,j+1)(j+1)(n+(j+1)2cur)

有了线性递推式子后,用一个快速幂转移即可。注意下标是从 0 开始的,因为 d p ( i , 0 ) dp(i, 0) dp(i,0) 是有意义的.

5. Problem - 1139D - Codeforces

不会写

给一个数列,每次随机选一个 1 1 1 m m m 之间的数加在数列末尾,数列中所有数的 gcd ⁡ = 1 \gcd=1 gcd=1 时停止,求期望长度。 m ≤ 1 0 5 m \le 10^5 m105

d p ( x ) dp(x) dp(x) 为现在手里的序列的最大公约数是 x x x,后面可以接数字个数的期望,则
d p ( x ) = 1 + ∑ i = 1 m gcd ⁡ ( i , x ) m = 1 + ∑ d ∣ x ∑ i = 1 m / d [ gcd ⁡ ( i , x / d ) = 1 ] . dp(x) = 1 + \sum\limits_{i=1}^{m} \dfrac{\gcd(i, x)}{m} \\ = 1 + \sum_{d|x}\sum\limits_{i=1}^{m/d}[\gcd(i, x / d) = 1]. dp(x)=1+i=1mmgcd(i,x)=1+dxi=1m/d[gcd(i,x/d)=1].
于是这个就枚举一下 x x x 的因数,然后将 x / d 分解质因数,容斥原理弄一下就出来了.

6. Problem - 1097D - Codeforces

不会写

给定 n , k n,k n,k,一共会进行 k k k 次操作,每次操作会把 n n n 等概率的变成 n n n 的某个约数。求操作 k k k 次后 n n n 的期望是多少,答案对 1 0 9 + 7 10^9+7 109+7 取模。 1 ≤ n ≤ 1 0 15 , 1 ≤ k ≤ 1 0 4 1 \le n \le 10^{15}, 1 \le k \le 10^4 1n1015,1k104

如果该数字是 p α p^\alpha pα 这种形式,那么就可以令 d p ( i , j ) dp(i, j) dp(i,j) 为操作了 i i i 次后,次数为 j j j 的期望. 可以证明 E ( n ) E(n) E(n) 是一个积性函数,就可以先把 n n n 分解质因数,然后把各自的答案乘起来就好了.

7. Problem - 1096F - Codeforces

看了提示
给你一个长为 n n n 的排列,若某一位为 − 1 −1 1, 则这一位是不确定的。每种可能的排列出现的概率相等。求期望逆序对数对 998244353 998244353 998244353 取模的结果。

首先考虑如果全是 − 1 -1 1 的话怎么求。考虑每个 ( i , j ) (i, j) (i,j) 的贡献,是 1 2 \dfrac{1}{2} 21. 那么总的期望就是所有的 pair 的期望之和。所以就是 n ( n − 1 ) 4 \dfrac{n(n-1)}{4} 4n(n1).

那么可以把这个分为三部分,已知数字与已知数字之间的逆序对,已知数字和未知数字之间的逆序对,未知数字和未知数字之间的逆序对。情况一和情况三都好求。

至于情况二,计算每个已知数字后面填比它小的数字概率,前面填比它大的数字概率,把这些情况加起来就行了.

8. Problem - 1045D - Codeforces

9. Problem - 1042E - Codeforces

看了提示
一个 n n n m m m 列的矩阵,每个位置有权值 a i , j a_{i,j} ai,j. 给定一个出发点, 每次可以等概率的移动到一个权值小于当前点权值的点, 同时得分加上两个点之间欧几里得距离的平方 ( 欧几里得距离: ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 \sqrt{(x_1-x_2)^2+(y_1-y_2)^2} (x1x2)2+(y1y2)2 ), 问得分的期望.

可以 x x x 轴和 y y y 轴分开看. 把所有的数字放在一个数组里面,然后排序, ∑ j = 1 i d ( x j − x i ) 2 = ∑ j = 1 i d x j 2 + 2 x i ∑ j = 1 i d x j + i d ∗ ( x i ) 2 \sum\limits_{j = 1}^{id}(x_j - x_i)^2 = \sum\limits_{j=1}^{id}x_j^2 + 2x_i\sum\limits_{j=1}^{id}x_j + id * (x_i)^2 j=1id(xjxi)2=j=1idxj2+2xij=1idxj+id(xi)2. 然后把这三个部分分别计算就可以了,打一个一次方前缀和和二次方前缀和就可以了.

10. Problem - 908D - Codeforces

看了提示

给三个数字 k , p a , p b   ( 1 ≤ k ≤ 1000 , 1 ≤ p a , p b ≤ 1 0 6 ) k, pa, pb\ (1 \le k \le 1000, 1 \le p_a, p_b \le 10^6) k,pa,pb (1k1000,1pa,pb106),生成一个序列,一开始为空,每次有 p a p a + p b \dfrac{p_a}{p_a + p_b} pa+pbpa 的概率往后面填一个 a p b p a + p b \dfrac{p_b}{p_a + p_b} pa+pbpb 的概率往后面填一个 b. 当出现了至少 k k k 个形如 a b ab ab 的子序列(不用连续)时停止。求最后 a b ab ab 序列数量的期望数。

很容易想到一个设计状态,就是 d p ( i , j ) dp(i, j) dp(i,j) 表示前面有 i i i a a a,已经有了 j j j a b ab ab,那么有
d p ( i , j ) = p a p a + p b d p ( i + 1 , j ) + p b p a + p b d p ( i , j + i ) dp(i, j) = \dfrac{p_a}{p_a + p_b}dp(i + 1, j) + \dfrac{p_b}{p_a + p_b}dp(i, j + i) dp(i,j)=pa+pbpadp(i+1,j)+pa+pbpbdp(i,j+i)

当然需要解决两个问题,一个就是 i i i 一直增大, 这个东西会收敛,其实就是当 i + j ≥ k i + j \ge k i+jk 的时候,再加一个 b b b 就会解决掉,其实就是 d p ( i , j ) = p b p a + p b ∑ x = 0 ∞ ( i + j + x ) ( p a p a + p b ) x dp(i, j) = \dfrac{p_b}{p_a + p_b}\sum\limits_{x=0}^{\infty}(i+j+x)(\dfrac{p_a}{p_a + p_b})^x dp(i,j)=pa+pbpbx=0(i+j+x)(pa+pbpa)x. 这个用错位相减就可以接出来通项公式,即 d p ( i + j ) = i + j + p a p b dp(i + j) = i + j + \dfrac{p_a}{p_b} dp(i+j)=i+j+pbpa.

第二个就是当前面没有 a a a 一直加 b b b 情况。 d p ( 0 , 0 ) = p a p a + p b d p ( 1 , 0 ) + p b p a + p b d p ( 0 , 0 ) dp(0, 0) = \dfrac{p_a}{p_a + pb}dp(1, 0) + \dfrac{p_b}{p_a + p_b}dp(0, 0) dp(0,0)=pa+pbpadp(1,0)+pa+pbpbdp(0,0). 移项就可以解决循环依赖问题。

最后答案就是 d p ( 0 , 0 ) dp(0, 0) dp(0,0).

11. Problem - 895E - Codeforces

给一个长度为 n   ( 2 ≤ n ≤ 1 0 5 ) n\ (2 \le n \le 10^5) n (2n105) 的序列,有 q   ( q ≤ 1 0 5 ) q\ (q \le 10^5) q (q105) 个操作:

  1. 给两个不相交的区间 [ l 1 , r 1 ] , [ l 2 , r 2 ] [l_1, r_1], [l_2, r_2] [l1,r1],[l2,r2],分别从两个区间中随机选择一个数字交换
  2. [ l , r ] [l, r] [l,r] 的区间和的期望是多少

操作两个区间,相当于每个数字乘 r − l r − l + 1 \dfrac{r - l}{r - l + 1} rl+1rl,然后加上另一个区间的均值乘 1 r − l + 1 \dfrac{1}{r - l + 1} rl+11. 用一个线段树,实现区间加或乘同一个数就好.

12. Problem - 768F - Codeforces

w w w 箱酒, f f f 箱食物。现在要把这些箱子摞成相邻的若干堆,要求每一堆都必须是同类型的箱子,且相邻堆类型不同。堆的高度定义为所有的箱子数。问所有用酒箱子做成的堆高度都大于 h h h 的概率。每种合法安排方式都是等概率发生. w , f , h ≤ 1 0 5 w, f, h \le 10^5 w,f,h105

13. Problem - 768D - Codeforces

一个人要取 n n n 种物品,一天只能等概率地取一件物品,但不能确定取到的是哪种物品,求每种物品都至少取一种的概率不小于 ( p / 2000 ) (p/2000) (p/2000) 的天数.

14. Problem - 711E - Codeforces

求一年有 2 n 2^n 2n 天, k k k 个人出现两人生日相同的可能性是多少。

15. Problem - 678E - Codeforces

你是一位骑士,与其他n-1个骑士同时爱上了LKJ,所以你们不得不通过决斗的方式来选出谁能最终得到LKJ。

幸运的是你知道任意骑士i击败骑士j的概率,你还被推选为组织委员。决斗一开始你需要任意选择两名骑士(包括自己)进行决斗,胜利方继续和你另外选择的一名骑士决斗,直到仅剩一人,最终的胜利者将得到LKJ。

你非常渴望取得胜利,想知道自己得到LKJ的最大概率是多少,注意你是1号。

第一行一个正整数 n n n,表示一共有 n n n 名骑士。

接下来是一个 n ∗ n n * n nn 的实数矩阵, A i j A_{ij} Aij. 表示 i i i 战胜 j j j 的概率。保证 A i i A_{ii} Aii 为 0,且 A i j + A j i = 1 A_{ij}+A_{ji}=1 Aij+Aji=1

16. Problem - 601C - Codeforces

m m m 个人参加 n n n 项比赛。每场比赛有一个分值,在 [ 1 , m ] [1,m] [1,m] 之间,且同一场比赛每个人的得分两两不同。总分为每场比赛得分之和。有一个人,给出他每场比赛的得分 c i c_i ci. 求这个人总分排名(第几小)的期望值。排名的定义为 1 + k 1+k 1+k k k k 表示总分严格比他低的人数. n ≤ 100 n \leq 100 n100 m ≤ 1 0 3 m \leq 10^3 m103

17. Problem - 596D - Codeforces

n n n 课树并排排列,每棵树高hh。每次从剩余的树中选最左边的或最右边的(概率相等为0.5),砍掉一棵树,树倒向左边的概率为 p p p,倒向右边的概率为 1 − p 1−p 1p。如果树和相邻树的距离小于 h h h,树倒时会把相邻的树撞倒,倒的方向和撞到它的树一致。问,砍完所有树,树干覆盖的草地长度的期望值。

你可能感兴趣的:(ACM题目整理,算法,数据结构,概率论)