解题思路:
需要多思考,多思考
参考代码:
//砝码称重--dp #include <bits/stdc++.h> using namespace std; int n,w[110]; int dp[110][100005]; int ans = 0; int main(){ cin>>n; int sum=0; for(int i=1;i<=n;++i){ cin>>w[i]; sum+=w[i]; } dp[0][0]=1; for(int i=1;i<=n;++i){ for(int j=0;j<=sum;++j){ dp[i][j] = max(dp[i-1][j],max(dp[i-1][j+w[i]],dp[i-1][abs(j-w[i])])); } } for(int i=1;i<=sum;++i){ if(dp[n][i]) ans++; } cout<<ans<<endl; return 0; }
0.0分
2 人评分
P1001 (C语言代码)浏览:800 |
字符串的输入输出处理 (C语言代码)浏览:925 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1030 |
WU-输出正反三角形 (C++代码)浏览:1018 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:526 |
IP判断 (C语言代码)浏览:762 |
蛇行矩阵 (C语言代码)浏览:524 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:262 |
数对 (C语言代码)浏览:697 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:606 |