結果
| 問題 |
No.1011 Infinite Stairs
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-03-20 22:16:57 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 662 bytes |
| コンパイル時間 | 1,744 ms |
| コンパイル使用メモリ | 167,600 KB |
| 実行使用メモリ | 430,080 KB |
| 最終ジャッジ日時 | 2024-12-15 06:23:20 |
| 合計ジャッジ時間 | 40,186 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 13 TLE * 11 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int N,d,K;
long long dp[90001][301];
long long const MOD = 1000000007;
long long f(int x, int r) {
if(dp[x][r] != -1) {
return dp[x][r];
} else {
long long ret = 0;
for(int j=1; j<=d; ++j) {
if(x - j < 0) break;
ret = (ret + f(x - j, r - 1)) % MOD;
}
return dp[x][r] = ret;
}
}
int main() {
cin >> N >> d >> K;
for(int i=0; i<90001; ++i) {
for(int j=0; j<301; ++j) dp[i][j] = -1;
}
dp[0][0] = 1;
for(int j=1; j<301; ++j) dp[0][j] = 0;
for(int i=1; i<90001; ++i) dp[i][0] = 0;
cout << f(K, N) << '\n';
}