解题思路:
注意事项:
参考代码:
#include <cstdio> #include <cstdlib> #include <iostream> #include <cmath> #include <cctype> #include <cstring> #include <string> #include <stack> #include <algorithm> #include <functional> using namespace std; const int maxv=201; const int maxw=5001; int w[maxw], v[maxv], dp[maxv][maxw]; int main() { int n, m; memset(dp, 0, sizeof(dp)); scanf("%d%d", &n, &m); for(int i = 1; i <= n; ++i) { scanf("%d%d", &w[i], &v[i]); } for(int i = 1; i <= n; ++i) { for(int j = 1; j <= m; ++j) { if(j >= w[i]) dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]); else dp[i][j] = dp[i-1][j]; } } printf("%d\n", dp[n][m]); return 0; }
0.0分
2 人评分
点我有惊喜!你懂得!浏览:1418 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1276 |
破解简单密码 (C语言代码)浏览:1866 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:668 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C++代码)(手动优化一下计算)浏览:1365 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:913 |
C语言训练-素数问题 (C语言代码)浏览:1696 |
C语言训练-排序问题<1> (C语言代码)浏览:636 |
WU-复数求和 (C++代码)浏览:2119 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |