提出 #49129100


ソースコード 拡げる

#ABC335F

#入力受取  1-indexed
N = int(input())
A = [0] + list(map(int,input().split()))
MOD = 998244353

#DP[i]: コマがiまで来たときの、iまでの塗り方の場合の数
DP = [0] * (N+1)
DP[1] = 1

#sub[i]: (一度に移動する幅step, 組み合わせ数comb)
#        幅stepの倍数の移動を行い、ちょうどマスiに止まる組み合わせ数comb
sub = [[] for _ in range(N+1)]

#same[i]: マスiにA[i]のstepで入るものがあればTrue
same = [False] * (N+1)

for now in range(1,N+1):
    #DP[now]は遷移時に計算済み。MODで割っておく
    DP[now] %= MOD

    #step == A[i]が存在しない場合、とりあえず(A[i], 0)を足す
    if same[now] == False:
        sub[now].append((A[now],0))

    #順に遷移
    while sub[now]:
        step, comb = sub[now].pop()
        next = now + step
        if next > N:
            continue

        #step == A[now]の場合、累積和の要領でcombを増やす
        if step == A[now]:
            comb += DP[now]
            comb %= MOD

        #nextに遷移  ここでDP[next]に加算処理を行う
        sub[next].append((step,comb))
        DP[next] += comb
        if A[next] == step:
            same[next] = True


#答えを出力
print(sum(DP) % MOD)

提出情報

提出日時
問題 F - Hop Sugoroku
ユーザ navel_tos
言語 Python (PyPy 3.10-v7.3.12)
得点 525
コード長 1319 Byte
結果 AC
実行時間 2245 ms
メモリ 313768 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 525 / 525
結果
AC × 3
AC × 63
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 57 ms 75936 KiB
sample_02.txt AC 56 ms 76288 KiB
sample_03.txt AC 55 ms 75836 KiB
test_01.txt AC 55 ms 76144 KiB
test_02.txt AC 99 ms 125948 KiB
test_03.txt AC 126 ms 122976 KiB
test_04.txt AC 112 ms 122988 KiB
test_05.txt AC 99 ms 126896 KiB
test_06.txt AC 101 ms 126884 KiB
test_07.txt AC 107 ms 125932 KiB
test_08.txt AC 257 ms 125668 KiB
test_09.txt AC 233 ms 125956 KiB
test_10.txt AC 263 ms 125952 KiB
test_11.txt AC 2000 ms 313456 KiB
test_12.txt AC 1891 ms 312172 KiB
test_13.txt AC 1809 ms 313768 KiB
test_14.txt AC 2179 ms 312324 KiB
test_15.txt AC 2245 ms 312144 KiB
test_16.txt AC 2023 ms 312392 KiB
test_17.txt AC 1702 ms 311196 KiB
test_18.txt AC 1699 ms 311620 KiB
test_19.txt AC 1717 ms 312572 KiB
test_20.txt AC 1734 ms 312088 KiB
test_21.txt AC 187 ms 125932 KiB
test_22.txt AC 185 ms 126064 KiB
test_23.txt AC 210 ms 126216 KiB
test_24.txt AC 187 ms 125948 KiB
test_25.txt AC 185 ms 126128 KiB
test_26.txt AC 187 ms 126316 KiB
test_27.txt AC 206 ms 126284 KiB
test_28.txt AC 187 ms 126144 KiB
test_29.txt AC 187 ms 125888 KiB
test_30.txt AC 187 ms 126300 KiB
test_31.txt AC 1371 ms 285568 KiB
test_32.txt AC 1360 ms 284732 KiB
test_33.txt AC 1593 ms 285464 KiB
test_34.txt AC 1380 ms 283656 KiB
test_35.txt AC 1386 ms 284620 KiB
test_36.txt AC 1402 ms 283844 KiB
test_37.txt AC 1521 ms 283484 KiB
test_38.txt AC 1765 ms 286600 KiB
test_39.txt AC 1741 ms 285820 KiB
test_40.txt AC 1448 ms 284996 KiB
test_41.txt AC 245 ms 125696 KiB
test_42.txt AC 77 ms 85732 KiB
test_43.txt AC 154 ms 106952 KiB
test_44.txt AC 183 ms 116112 KiB
test_45.txt AC 71 ms 82408 KiB
test_46.txt AC 191 ms 116760 KiB
test_47.txt AC 162 ms 113740 KiB
test_48.txt AC 156 ms 110068 KiB
test_49.txt AC 113 ms 102300 KiB
test_50.txt AC 231 ms 125276 KiB
test_51.txt AC 98 ms 125688 KiB
test_52.txt AC 110 ms 122712 KiB
test_53.txt AC 126 ms 123152 KiB
test_54.txt AC 135 ms 123120 KiB
test_55.txt AC 142 ms 123044 KiB
test_56.txt AC 144 ms 122776 KiB
test_57.txt AC 144 ms 123140 KiB
test_58.txt AC 153 ms 122964 KiB
test_59.txt AC 169 ms 123156 KiB
test_60.txt AC 181 ms 123336 KiB