#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
int main()
{
ifstream fin ("stamps.in");
ofstream fout ("stamps.out");
int k,n;
int i;
int f[200001]={0};
int value[100]={0};
f[0]=0;
fin>>k>>n;
for(i=1;i<=n;i++)
fin>>value[i];
int j;
cout<<k<<n<<endl;
for(i=1;i<=n;i++)
cout<<value[i]<<' ';
for(j=0;;j++)//j表示钱币值
{
if((j==0 || f[j])&&(f[j]<=k))
{
for(i=1;i<=n;i++)
{
if(f[j+value[i]])
{
f[j+value[i]]=min(f[j+value[i]],f[j]+1);
}
else
f[j+value[i]]=f[j]+1;
}
}
else
{
fout<<j-1<<endl;
return 0;
}
}
}
stamps+动态规划
最新推荐文章于 2024-08-29 12:01:12 发布