70分求调
查看原帖
70分求调
1251905
cao_20115楼主2024/5/3 22:30
#include <bits/stdc++.h>
using namespace std;
int dp[110][1010];
int T, m;
int t[110];
int v[110];
int main(){
    scanf("%d%d", &T, &m);
    for (int i = 0; i < m; ++i) {
        scanf("%d%d", &t[i], &v[i]);
    }
    dp[0][0] = 0;
    for (int i = 1; i <= m; ++i) {
        dp[i][0] = 0;
        for (int j = 1; j <= T; ++j) {
            dp[0][j] = 0;
            if (t[i] > j) dp[i][j] = dp[i - 1][j];
            else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - t[i]] + v[i]);
        }
    }
    printf("%d", dp[m][T]);
    return 0;
}
2024/5/3 22:30
加载中...