🍑 算法题解专栏
🍑 题目链接
👨🏫 参考
🍑 AC O(nm)
import java.util.Scanner;
public class Main
{
static int N = 10010;
static int[] f = new int[N];// f[i] 表示 凑成 i 总共有多少种方案
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
f[0] = 1;// 初始化,和是 0 不选任何数 是 一种方案
for (int i = 0; i < n; i++)
{
int a = sc.nextInt();
for (int j = m; j >= a; j--)
f[j] += f[j - a];
}
System.out.println(f[m]);
}
}