解题思路:01背包
注意事项:注意倒序
参考代码:
#include<iostream> #include<algorithm> using namespace std; const int N = 4e3 + 10; int f[N],w[N],c[N],n,m; int main() { cin >> n >> m; for(int i = 1; i <= n; i ++) cin >> w[i] >> c[i]; for(int i = 1; i <= n; i ++) for(int j = m; j >= w[i]; j --) f[j] = max(f[j], f[j- w[i]] + c[i]); cout << f[m]; return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:850 |
C二级辅导-求偶数和 (C语言代码)浏览:664 |
C语言训练-字符串正反连接 (C语言代码)浏览:664 |
十->二进制转换 (C语言代码)浏览:1330 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:563 |
简单的a+b (C语言代码)浏览:385 |
【金明的预算方案】 (C++代码)浏览:873 |
简单的a+b (C语言代码)浏览:661 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:573 |