【ABC178 C】「Ubiquity」を解く【Python3】

「AtCoder」解説一覧へ

長さNの整数の列A1,A2,…,AN の中で条件を満たすものを求める問題です。

提出
n = int(input())
mod = 10**9+7
print((pow(10,n,mod)-pow(9,n,mod)*2+pow(8,n,mod))%mod)

すべての数列のパターンの数から、条件を満たさないパターンの数を引いたものが答えになります。

すべてのパターンは、10N個あります。

0が一つもないパターンと、9が一つもないパターンは、共に9Nとなります。

この二つには重複しているものがあるので、0と9の両方が含まれないパターン8Nを「(9N)×2」から除外する必要があります。

pow()関数を使うと、時間コストを短縮できます。

「pow(10,n,mod)」では、10Nをmodで割った余りを取得できます。

【ABC178】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です