結果
問題 | No.1702 count good string |
ユーザー |
![]() |
提出日時 | 2021-10-10 11:00:00 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 293 ms / 2,000 ms |
コード長 | 759 bytes |
コンパイル時間 | 694 ms |
コンパイル使用メモリ | 81,776 KB |
実行使用メモリ | 76,732 KB |
最終ジャッジ日時 | 2024-09-14 05:16:11 |
合計ジャッジ時間 | 7,984 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 47 |
ソースコード
import sys #input = sys.stdin.readline #input = sys.stdin.buffer.readline import copy def main(): N = int(input()); MOD = pow(10,9) + 7 S = input() Y = "yukicoder" T = [Y] for i in range(9): temp = Y[:i] + "?" + Y[i+1:] T.append(temp) #print(T) ans = 0 for t in T: #print(t) #i番目まで一致している場合の数 dp = [0]*10 dp[0] = 1 for i in range(N): p = copy.copy(dp) dp,p = p,dp for j in range(9): if S[i] == t[j]: dp[j+1] += p[j] dp[j+1] %= MOD #print(dp) ans += dp[9] ans %= MOD print(ans) if __name__ == '__main__': main()