25分求调(在线等)急!!
查看原帖
25分求调(在线等)急!!
765957
Fengxuyang楼主2024/11/10 11:52
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

struct node
{
	long long a, b, c;
} f[55];

bool cmp(node x, node y)
{
	return 1ll * x.b * y.c > 1ll * y.b * y.c;
}

long long n, m, dp[100005];

int main()
{
	cin >> m >> n;
	for (long long i = 1; i <= n; i++)
	{
		cin >> f[i].a;
	}
	for (long long i = 1; i <= n; i++)
	{
		cin >> f[i].b;
	}
	for (long long i = 1; i <= n; i++)
	{
		cin >> f[i].c;
	}
	sort(f + 1, f + n + 1, cmp);
	for (long long i = 1; i <= n; i++)
	{
		for (long long j = m; j >= f[i].c; j--)
		{
			dp[j] = max(dp[j], dp[j - f[i].c] + f[i].a - j * f[i].b);
		}
	}
	long long ans = 0;
	for (long long j = 1; j <= m; j++)
	{
		ans = max(ans, dp[j]);
	}
	cout << ans;
    return 0;
}
2024/11/10 11:52
加载中...