就是一个经典的01背包,能够把时间看做体积,价值嘛就是价值,代码如下:
C语言:
#include <stdio.h>
#define max(a, b) ((a)>(b)?(a):(b))
int f[1001];
int main(void)
{
int i, j;
int m, n;
int a, b;
scanf(%d%d, &m, &n);
for(i = 0; i < n; i++){
scanf(%d%d, &a, &b);
for(j = m; j >= a; j--){
f[j] = max(f[j], f[j - a] + b);
}
}
printf(%d\\n, f[m]);
return 0;
}