为什么80pts?
查看原帖
为什么80pts?
1046223
a_blue_fool楼主2024/1/3 22:05
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int t , m;
int value[10000] , dp[10010][10010];

int main()
{	
	cin >> t >> m;
	for (int i = 0 ; i < m ; i++)
	{
		cin >> value[i];
	}
	
	for (int i = t ; i >= value[0] ; i--) dp[0][i] = value[0] + dp[0][i-value[0]];
	
	for (int i = 1 ; i < m ; i++)
	{
		for (int j = 0 ; j <= t ; j++)
		{
			if (j < value[i]) dp[i][j] = dp[i-1][j];
			else dp[i][j] = max(dp[i-1][j] , dp[i-1][j-value[i]]+value[i]);
		}
	}
	
	printf("%d" , t-dp[m-1][t]);
	
	return 0;
}
2024/1/3 22:05
加载中...