Faith


私信TA

用户名:1310510120

访问量:42372

签 名:

求介绍工作

等  级
排  名 217
经  验 6352
参赛次数 1
文章发表 54
年  龄 0
在职情况 学生
学  校 武汉生物工程学院
专  业

  自我简介:

解题思路:
答案是从网上找的




注意事项:





参考代码:

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 人评分

  评论区

  • «
  • »