提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |