洛谷链接:https://www.luogu.org/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]);
}
}