↓ ↓ ↓ ↓ ↓
做题记录
#include <bits/stdc++.h>
using namespace std;
int dp[1001][10001];
struct inf_grass
{
int time, money;
}a[1001];
int main() {
int t, m;
cin >> t >> m;
for(int i = 1; i <= m; i++)
{
cin >> a[i].time >> a[i].money;
}
for(int i = 1; i <= m; i++)
{
for(int j = 0; j <= t; j++)
{
for(int k = 0; k <= j / a[i].time; k++)
{
dp[i][j] = max(dp[i-1][j], dp[i-1][j-k*a[i].time]+k*a[i].money);
}
}
}
cout << dp[m][t];
return 0;
}