E - Black or White
https://atcoder.jp/contests/exawizards2019/tasks/exawizards2019_e
解法
ほとんどの状態でi番目に黒を引く確率は1/2となる
例外はi番目に「黒が残っていない場合」と「白が残っていない場合」である
i番目に黒が残っていない確率をpiとすると
pi = p(i-1) + (i-1 C b-1) / 2^(i-1) / 2
前回までに黒が無くなる確率と今回無くなる確率の足し合わせでこうなる
qiをi番目に白が残っていない確率とすると
答えは白と黒が残っている場合と白が残っていない場合の足し合わせになる
(1 - pi - qi) / 2 + qi
https://atcoder.jp/contests/exawizards2019/submissions/4874103
void solve() {
int b, w;
cin >> b >> w;
//基本1/2
mint nb = 0, nw = 0;//no
rep(i, 1, b + w + 1) {
// どっちも 黒しか
mint res = (1 - nb - nw) / 2 + nw;
cout << res << endl;
//新しく駄目になる 今回b
nb += com(i - 1, b - 1) / mpow(2, i - 1) / 2;
nw += com(i - 1, w - 1) / mpow(2, i - 1) / 2;
}
}