#include<iostream>
using namespace std;
int dp[1000005],a[50];
int inf=1e9;
int n,k,ans[50],mx=0;
直接暴力不重复枚举所有情况,然后更新即可。
void solve()
{
for (int i=1;;i++)
{
dp[i]=inf;
for (int j=1;j<=k && i>=a[j];j++)
dp[i]=min(dp[i],dp[i-a[j]]+1);
if (dp[i]>n)
{
if (i-1>mx)
{
mx=i-1;
for (int o=1;o<=k;o++)
using namespace std;
int dp[1000005],a[50];
int inf=1e9;
int n,k,ans[50],mx=0;
直接暴力不重复枚举所有情况,然后更新即可。
void solve()
{
for (int i=1;;i++)
{
dp[i]=inf;
for (int j=1;j<=k && i>=a[j];j++)
dp[i]=min(dp[i],dp[i-a[j]]+1);
if (dp[i]>n)
{
if (i-1>mx)
{
mx=i-1;
for (int o=1;o<=k;o++)