80分,玄关
查看原帖
80分,玄关
1408054
zhaolt2012楼主2025/8/4 16:50
#include<bits/stdc++.h>
using namespace std;
long long n,k,dp[1000010];
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		long long a;
		cin>>a;
		for(int j=k;j>=a;j--)
		{
			if(abs(k-dp[j])>abs(k-dp[j-a]-a))dp[j]=dp[j-a]+a;
			else if(abs(k-dp[j])==abs(k-dp[j-a]-a))dp[j]=min(dp[j],dp[j-a]+a);
		}
		
	}
	cout<<dp[k];
	return 0;
}
2025/8/4 16:50
加载中...