解题思路:
答案是从网上找的
注意事项:
参考代码:
import java.util.Scanner; public class test { //动态规划问题,设f[i][j]是前i种花摆放j盆的方案,则f[i][j]=f[i-1][j-k] public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt();//n种花 int m = scanner.nextInt();//共m盆 int[] a = new int[n+1]; int[][] f = new int[n+1][m+1] ; for (int i = 1; i <= n; i++) { a[i] = scanner.nextInt(); } //前1种花,摆放a[1]盆就一种方案 for (int i = 1; i <= a[1]; i++) { f[1][i] = 1; } //前i中花,摆放0盆就一种方案 for (int i = 1; i <= n; i++) { f[i][0] = 1; } //前i种花,摆放j盆共f[i][j]=f[i][j]+f[i-1][j-k]种 for (int i = 2; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int k = 0; k <= a[i]&&k<=j; k++) { f[i][j]=f[i][j]+f[i-1][j-k]; f[i][j] = f[i][j] % 1000007; } } } System.out.println(f[n][m]); } }
0.0分
0 人评分
简单的a+b (C语言代码)浏览:674 |
WU-输出九九乘法表 (C++代码)浏览:1853 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:710 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:729 |
1050题解(结构体数组与结构体指针的使用)浏览:1216 |
蛇行矩阵 (C语言代码)浏览:559 |
C语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:799 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:841 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:559 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1359 |