結果

問題 No.314 ケンケンパ
コンテスト
ユーザー neterukun
提出日時 2019-06-03 03:53:51
言語 Python3
(3.14.3 + numpy 2.4.4 + scipy 1.17.1)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
MLE  
実行時間 -
コード長 894 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 357 ms
コンパイル使用メモリ 20,696 KB
実行使用メモリ 632,280 KB
最終ジャッジ日時 2026-04-06 10:53:25
合計ジャッジ時間 4,966 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other MLE * 1 -- * 16
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

n = int(input())
MOD = 10**9 + 7

# dp[i][j][k][l] := 長さiで終わるときの通り数
# j, k, lはケンかパーかを表す
dp = [[[[0]*2 for _ in range(2)] for _ in range(2)] for i in range(n+1)]
# 初期化
dp[3][0][0][0] = 0
dp[3][0][0][1] = 0
dp[3][0][1][0] = 1
dp[3][0][1][1] = 0
dp[3][1][0][0] = 1
dp[3][1][0][1] = 0
dp[3][1][1][0] = 0
dp[3][1][1][1] = 0

for i in range(3, n):
    dp[i+1][1][0][0] = dp[i][0][0][1]
    dp[i+1][1][0][1] = dp[i][0][1][0]
    dp[i+1][0][1][0] = dp[i][1][0][0] + dp[i][1][0][1]
    dp[i+1][0][0][1] = dp[i][0][1][0]
    dp[i+1][1][0][0] %= MOD
    dp[i+1][1][0][1] %= MOD
    dp[i+1][0][1][0] %= MOD
    dp[i+1][0][0][1] %= MOD
ans = 0
for j in range(2):
    for k in range(2):
        for l in range(2):
            ans += dp[n][j][k][l]
if n == 1:
    print(1) #ケン
elif n == 2:
    print(2) #ケンケン、ケンパ
else:
    print(ans % MOD)
0