import java.util.Scanner;
public class Main {
static int[][] dp = new int[300][300];
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
for(int i = 1;i<=n;i++){
dp[i][1] = dp[i][i] = 1;
}
for(int i = 1;i <= n;i++){
for(int j = 2;j <= k;j++){
if(i < j){
continue;
}
dp[i][j] = dp[i-1][j-1] + dp[i-j][j];
}
}
System.out.println(dp[n][k]);
}
}
试题 算法训练 数的划分 Java
此篇博客介绍了如何使用Java实现动态规划算法解决最短路径问题,通过递推方式计算从矩阵的一角到达另一角,以k步为限制。它展示了如何初始化dp数组,遍历并更新状态,最终输出dp[n][k]的结果。
721

被折叠的 条评论
为什么被折叠?



