题解
【基础】小明买书
1 条题解
-
0
#include <iostream> using namespace std; long long n, dp[105][10005], m, a[105]; int main() { cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> a[i]; } // 初始化 for (int i = 0; i <= n; i++) dp[i][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (j >= a[i]) { dp[i][j] = dp[i-1][j] + dp[i-1][j - a[i]]; } else { dp[i][j] = dp[i-1][j]; // 不选当前数 } } } cout << dp[n][m]; return 0; }
- 1