解题思路:
逐渐求最大值
(模板题,-多阶段决策问题)
注意事项:
遍历是从最大值数组中的1到你拥有的时间t
参考代码:
#include <cstdio>
#include <algorithm>
using namespace std;
int a[10005];
int w[10005];
int f[1000005];
int main()
{
int t,m;
scanf("%d %d",&t,&m);
for(int b = 1; b <= m; b ++)
scanf("%d %d",&a[b],&w[b]);
for(int b = 1; b <= m; b ++)
for(int c = t; c >= a[b]; c--)
f[c]=max(f[c],f[c-a[b]]+w[b]);
f[0] = 0;
for(int b = 1; b<=t; b ++)
f[0]=max(f[0],f[b]);
printf("%d",f[0]);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:927 |
震宇大神的杀毒软件 (C语言代码)浏览:1240 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:732 |
蓝桥杯历届试题-九宫重排 (C++代码)浏览:2782 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:577 |
C语言训练-大、小写问题 (C语言代码)浏览:611 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:691 |
WU-输出九九乘法表 (C++代码)浏览:1654 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:660 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2155 |