装大米dp
作者:
husheng
,
2024-11-30 17:18:47
,
所有人可见
,
阅读 3
package 挑战赛国赛_2020;
import java.util.Scanner;
public class test6_dp {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int m = input.nextInt();
int[] arr = new int[n+5];
for(int i=1;i<=n;i++) {
arr[i] = input.nextInt();
}
int[][] dp = new int[m+5][m+5];//对于前i个物品,重量恰好为j的组合方法总和
dp[0][0] = 1; // 不选取任何大米时,重量之和为0的组合方法只有一种
for(int i=1;i<=n;i++) {
for(int j=0;j<=m;j++) {
if(j<arr[i]) {
dp[i][j] = dp[i-1][j];
}else {
dp[i][j] = dp[i-1][j] + dp[i-1][j-arr[i]];
}
}
}
System.out.println(dp[n][m]);
}
}