dp怎么会这么难啊!
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <cstring> 5 #include <algorithm> 6 #include <queue> 7 #include <stack> 8 #include <vector> 9 using namespace std; 10 int dp[150][10010]; 11 int main(int argc, char *argv[]) 12 { 13 int n,m,a[1010]; 14 scanf("%d%d",&n,&m); 15 for(int i=1;i<=n;i++) 16 scanf("%d",&a[i]); 17 for(int i=1;i<=n;i++) 18 { 19 for(int j=1;j<=m;j++) 20 { 21 if(j==a[i]) 22 dp[i][j]=dp[i-1][j]+1; 23 else if(j>a[i]) 24 dp[i][j]=dp[i-1][j]+dp[i-1][j-a[i]]; 25 else 26 dp[i][j]=dp[i-1][j]; 27 } 28 } 29 printf("%d",dp[n][m]); 30 return 0; 31 }
原文:https://www.cnblogs.com/huluxin/p/9688414.html