Test
import java.util.*;
import static java.lang.System.out;
public class KTree {
static final int MOD = (int) (1e9+7);
public static void main(String[] args){
long[][] dp = new long[105][2];
int n,k,d;
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
k = scan.nextInt();
d = scan.nextInt();
dp[0][0] = 1;
for (int i = 0;i <= n;i++){
for (int j = 1;j <= k;j++){
if (i + j > n) continue;
if (j < d) dp[i + j][0] += dp[i][0];
else dp[i + j][1] += dp[i][0];
dp[i + j][1] += dp[i][1];
dp[i + j][0] %= MOD;
dp[i + j][1] %= MOD;
}
}
out.println(dp[n][1]);
}
}
1 import java.util.*;
2
3 import static java.lang.System.out;
4
5 public class KTree {
6 static final int MOD = (int) (1e9+7);
7 public static void main(String[] args){
8 long[][] dp = new long[105][2];
9 int n,k,d;
10 Scanner scan = new Scanner(System.in);
11 n = scan.nextInt();
12 k = scan.nextInt();
13 d = scan.nextInt();
14 dp[0][0] = 1;
15 for (int i = 0;i <= n;i++){
16 for (int j = 1;j <= k;j++){
17 if (i + j > n) continue;
18
19 if (j < d) dp[i + j][0] += dp[i][0];
20 else dp[i + j][1] += dp[i][0];
21
22 dp[i + j][1] += dp[i][1];
23
24 dp[i + j][0] %= MOD;
25 dp[i + j][1] %= MOD;
26 }
27 }
28 out.println(dp[n][1]);
29 }
30 }
1 import java.util.*;
2
3 import static java.lang.System.out;
4
5 public class KTree {
6 static final int MOD = (int) (1e9+7);
7 public static void main(String[] args){
8 long[][] dp = new long[105][2];
9 int n,k,d;
10 Scanner scan = new Scanner(System.in);
11 n = scan.nextInt();
12 k = scan.nextInt();
13 d = scan.nextInt();
14 dp[0][0] = 1;
15 for (int i = 0;i <= n;i++){
16 for (int j = 1;j <= k;j++){
17 if (i + j > n) continue;
18
19 if (j < d) dp[i + j][0] += dp[i][0];
20 else dp[i + j][1] += dp[i][0];
21
22 dp[i + j][1] += dp[i][1];
23
24 dp[i + j][0] %= MOD;
25 dp[i + j][1] %= MOD;
26 }
27 }
28 out.println(dp[n][1]);
29 }
30 }

浙公网安备 33010602011771号