题解
【基础】数字的组合
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; //数字的组合(01背包问题) int dp[100001],a[110],n,m; int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; dp[0]=1; for(int i=1;i<=n;i++){//物品的数量 for(int j=m;j>=a[i];j--){//从后往前 01背包 dp[j]+=dp[j-a[i]];//当前的种类数 加上 把a[i]放进来的种类数 } } cout<<dp[m]; return 0; }
- 1