1. 程式人生 > >agc019F Yes or No

agc019F Yes or No

題目連結

https://agc019.contest.atcoder.jp/tasks/agc019_f

題意簡述

n + m n+m 個問題,答案都是"Yes"或"No",其中 n

n 個是"Yes", m m 個是"No"。你回答一個問題後,不管是否正確,都可以得到這個問題的答案。假設你都不知道答案只能猜,按最有策略行動,求你期望答對問題的個數。

題解

容易得到一個 O (

n 2 ) O(n^2) 的dp
f i ,
j = i i + j f i 1 , j + j i + j f i , j 1 + max ( i , j ) i + j f_{i,j}=\frac{i}{i+j}f_{i-1,j}+\frac{j}{i+j}f_{i,j-1}+\frac{\max(i,j)}{i+j}

g i , j = f i , j max ( i , j ) g_{i,j}=f_{i,j}-\max(i,j) ,假設 i > j i>j
g i , j + i = i i + j f i 1 , j + j i + j f i , j 1 + i i + j g i , j + i = i i + j ( g i 1 , j + i 1 ) + j i + j ( g i , j 1 + i ) + i i + j g i , j = i i + j g i 1 , j + j i + j g i , j 1 \begin{aligned} g_{i,j}+i & =\frac{i}{i+j}f_{i-1,j}+\frac{j}{i+j}f_{i,j-1}+\frac{i}{i+j}\\ g_{i,j}+i & =\frac{i}{i+j}(g_{i-1,j}+i-1)+\frac{j}{i+j}(g_{i,j-1}+i)+\frac{i}{i+j}\\ g_{i,j} & =\frac{i}{i+j}g_{i-1,j}+\frac{j}{i+j}g_{i,j-1} \end{aligned}
同理, i < j i<j 時上式也成立。

假設 i = j i=j
g i , i + i = 1 2 f i 1 , i + 1 2 f i , i 1 + 1 2 g i , i + i = 1 2 ( g i 1 , i + i ) + 1 2 ( g i , i 1 + i ) + 1 2 g i , j = 1 2 g i 1 , i + 1 2 g i , i 1 + 1 2 \begin{aligned} g_{i,i}+i & =\frac{1}{2}f_{i-1,i}+\frac{1}{2}f_{i,i-1}+\frac{1}{2}\\ g_{i,i}+i & =\frac{1}{2}(g_{i-1,i}+i)+\frac{1}{2}(g_{i,i-1}+i)+\frac{1}{2}\\ g_{i,j} & =\frac{1}{2}g_{i-1,i}+\frac{1}{2}g_{i,i-1}+\frac{1}{2} \end{aligned}