求HACK
查看原帖
求HACK
1122193
FarmerDrone楼主2024/5/17 21:34

/10 改成 /1000 是样例都过不了的,所以似乎正确性是不保证的。

#include <bits/stdc++.h> 
using namespace std;

int dp[99999999];

int main() 
{
	int l = 0, r, y, n;
	cin >> r >> y >> n;
	int  c[n], v[n];
	int n2 = n;
	while (--n + 1)
		scanf("%d%d", &c[n], &v[n]);
		
	for (int i = 0; i <= r / 10; i++)
		dp[i] =  i * 10;	
		
	for (int i = 0; i < y; i++)
	{
		for (int j = 0; j < n2; j++)
			for (int k = max(c[j], l) / 10; k <= r / 10; k++)
				dp[k] = max(dp[k], dp[k - c[j] / 10] + c[j] + v[j]);
//		for (int j = 0; j <= r / 10; j++)
///			cout <<dp[j] << " ";
//		cout << "\n";
		l = r;
		r = dp[r / 10];
	}
	
	cout << r << endl;
	return 0;
}
2024/5/17 21:34
加载中...