测试数据过了,但全WA,用的是DP
查看原帖
测试数据过了,但全WA,用的是DP
829643
devcjj楼主2023/3/8 20:56

cpp

#include<iostream>
#include<algorithm>
using namespace std;
int a[6], bb[30][30], value[30];
void dp(int weight, int weight1)
{
	for (int i = 0; i < 22; i++)
	{
		for (int j = 0; j < 22; j++)
		{
			bb[i][j] = 0;
		}
	}
	for (int i = 1; i <= weight1; i++)
	{
		for (int j = 1; j <= weight; j++)
		{
			bb[i][j] = bb[i - 1][j];
			if (value[i] <= j)
			{
				bb[i][j] = max(bb[i - 1][j], (bb[i - 1][j - value[i]] + value[i]));
			}
		}
	}
}
int main()
{
	int all = 0;
	for (int i = 1; i <= 4; i++)cin >> a[i];
	for (int i = 1; i <= 4; i++)
	{
		int mid = 0;
		for (int j = 1; j <= a[i]; j++) {
			cin >> value[j];
			sort(value, value + a[i]);
			mid += value[j];
		}
		int t = mid;
		mid /= 2;
		dp(mid, a[i]);
		all += max(bb[a[i]][mid], t - bb[a[i]][mid]);
	}
	cout << all ;
}

2023/3/8 20:56
加载中...