結果

問題 No.1011 Infinite Stairs
ユーザー persimmon-persimmon
提出日時 2021-06-16 13:40:45
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 519 ms / 2,000 ms
コード長 398 bytes
コンパイル時間 334 ms
コンパイル使用メモリ 82,520 KB
実行使用メモリ 247,312 KB
最終ジャッジ日時 2024-07-17 12:18:53
合計ジャッジ時間 5,454 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #

"""
1<=n,d<=300
n<=k<=n*d
貰うdp
x段目に到達できるのは前回x-d~x-1段目にいるとき
累積和で高速化
"""
n,d,k=map(int,input().split())
dp=[0]*(n*d+1)
dp[0]=1
mod=10**9+7
for _ in range(n):
  ndp=[0]*(n*d+1)
  tmp=0
  for i in range(n*d+1):
    if 0<=i-d-1:
      tmp-=dp[i-d-1]
      tmp%=mod
    ndp[i]=tmp # sum(dp[i-d:i])
    tmp+=dp[i]
    tmp%=mod
  dp=ndp
print(dp[k])
0