题面
题解(求方案数)
状态转移方程 :f [ i , j ] = f [ i - 1 ] [ j ] + f [ i ] [ j - v ] (求方案数)
初始化 :f [ i ] [ 0 ] = 1 (从前i个物品中选体积是0的方案数是1)
f [ 0 ] [ i ] = 0 (从前0个物品中选体积是i的方案数是0)
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int f[N];
int main() {
int n, m;
cin >> n >> m;
f[0] = 1;
for (int i = 1; i <= n; i++) {
int v;
cin >> v;
for (int j = m; j >= v; j--) {
f[j] += f[j - v];
}
}
cout << f[m] << endl;
return 0;
}