求条
查看原帖
求条
1058570
tzhengqing楼主2025/7/25 21:43

WA*8

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,X,a[105],dp[105][105][105],ans=1e18;
signed main()
	{
	cin>>n>>X;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int k=1;k<=n;k++)
		{
		memset(dp,-0x3f,sizeof dp);
		dp[0][0][0]=0;
		for(int x=1;x<=n;x++)
			{
			for(int i=0;i<=min(x,k);i++)
				{
				for(int j=0;j<k;j++)
					{
					dp[x][i][j]=dp[x-1][i][j];
					if(i>0)dp[x][i][j]=max(dp[x][i][j],dp[x-1][i-1][((j-a[x]+k)%k+k)%k]+a[x]);
					//cout<<k<<' '<<x<<' '<<i<<' '<<j<<' '<<dp[x][i][j]<<'\n';
					}
				}
			}
		//cout<<"dpdpdpdpdpdpdp"<<dp[n][k][X%k]<<'\n';
		ans=min(ans,(X-dp[n][k][X%k])/k);
		}
	cout<<ans;
	return 0;
	}
2025/7/25 21:43
加载中...