ABC280E - Critical Hit

解法1:メモ化再帰

考え方

modの逆数(modの逆数 - 競プロはじめました)さえわかれば,再帰的に計算できる.


回答例

import sys
sys.setrecursionlimit(10 ** 6)
from functools import lru_cache

N, P = map(int, input().split())
mod = 998244353

a = P * pow(100, mod - 2, mod)
a %= mod
b = (100 - P) * pow(100, mod - 2, mod)
b %= mod

@lru_cache(maxsize = None)
def f(x):
    if x <= 0:
        return 0
    return (1 + f(x - 2) * a + f(x - 1) * b) % mod

print(f(N))