解题思路:
注意事项:
参考代码:
#include<bits/stdc++.h>
using namespace std;
const int MAX = 1001;
int T, M;
int t[MAX], v[MAX];
int dp[MAX] = {0};
int solve(int T, int M)
{
for (int i = 1; i <= M; i++) {
for (int j = T; j > 0; j--) {
if (j >= t[i]) {
dp[j] = max(dp[j], dp[j - t[i]] + v[i]);
}
}
}
return dp[T];
}
int main()
{
cin >> T >> M;
for (int i = 1; i <= M; i++) {
cin >> t[i] >> v[i];
}
memset(dp, 0, sizeof(dp));
cout << solve(T, M) << endl;
return 0;
}
0.0分
8 人评分
C语言程序设计教程(第三版)课后习题7.3 (C++代码)浏览:697 |
【蟠桃记】 (C语言代码)浏览:826 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:602 |
破解简单密码 (C语言代码)浏览:1864 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:3472 |
【回文数(二)】 (C++代码)浏览:932 |
【回文数(二)】 (C语言代码)浏览:940 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1043 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:467 |
WU-陶陶摘苹果2 (C++代码)浏览:1018 |