80pts 蒟蒻求助 Subtask 1 WA 1,Subtask 2 WA 1
查看原帖
80pts 蒟蒻求助 Subtask 1 WA 1,Subtask 2 WA 1
926886
kind_Ygg楼主2024/7/18 11:06
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
string a;
int answer;
int sum[50][50];
int dp[45][N];
signed main()
{
	cin>>a;
	int len=a.size();
	cin>>answer;
	a=" "+a;
	for(int i=1;i<=len;i++)
	{
		sum[i][i]=a[i]-'0';
		for(int j=i+1;j<=len;j++)
			sum[i][j]=sum[i][j-1]*10+a[j]-'0';
	}
	for(int i=1;i<=len;i++)
	{
		for(int j=i-1;j>=0&&sum[j+1][i]<=answer;j--)
		{
			for(int k=sum[j+1][i];k<=answer;k++)
			{
				dp[i][k]=LONG_LONG_MAX;
				dp[i][k]=min(dp[i][k],dp[j][k-sum[j+1][i]]+1);
			}
		}
	}
	if(dp[len][answer]==1)
		cout<<-1;
	else
		cout<<dp[len][answer]-1<<'\n';
	
	return 0;
}//dp[i][k]=min(dp[i][k],dp[j][k-sum[j+1][i]]+1)
2024/7/18 11:06
加载中...