洛谷链接:/problem/P1164
i写成了j,改了nnnnn久!!!!
import java.util.Scanner;class Main{public static void main(String[] args) {Scanner in = new Scanner(System.in);int n=in.nextInt(); int m=in.nextInt(); int[] a=new int[101]; int[][] f=new int[10001][10001]; //DP数组for(int i=1;i<=n;i++) {a[i]=in.nextInt();}for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {if(j==a[i]) f[i][j]=f[i-1][j]+1; //多加了一个菜,钱没变if(j>a[i]) f[i][j]=f[i-1][j]+f[i-1][j-a[i]]; //不买这道菜的方案加上买这道菜的方案if(j<a[j]) f[i][j]=f[i-1][j]; //不够钱,和没加菜一样}}System.out.println(f[n][m]);}}