30分求调
查看原帖
30分求调
1698714
Johnnyxu0715楼主2025/8/29 17:48

↓ ↓ ↓ ↓ ↓

做题记录

#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;
}
2025/8/29 17:48
加载中...