dp专题 第十八题 买书

来源:互联网 发布:java request获取XML 编辑:程序博客网 时间:2024/06/05 03:36

1、简单描述

小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。有多少种买书的方案。

注意:n元钱必须全部用来买书,每种书的数目不限。

2、思路

完全背包问题

#include<bits/stdc++.h>using namespace std;int v[10];int f[1010],i,j,n;int main(){       cin>>n;       v[1]=10;       v[2]=20;       v[3]=50;       v[4]=100;       f[0]=1;       for (i=1;i<=4;i++)        for (j=0;j<=n;j++)         if (j>=v[i])           f[j]=f[j]+f[j-v[i]];       cout<<f[n]<<endl;       return 0;}

完全背包问题求方案数。

虽然这个程序通过了,但有的样例并不符合。

#include<bits/stdc++.h>
using namespace std;
int v[10];
int f[1010],i,j,n;
int main()
{
       cin>>n;
       v[1]=10;
       v[2]=20;
       v[3]=50;
       v[4]=100;
      if(n==0||n%10!=0)  {cout<<"0"<<endl;return 0;}
       for (i=1;i<=4;i++)
        for (j=0;j<=n;j++)
         if (j>=v[i])
           f[j]=f[j]+f[j-v[i]];
       cout<<f[n]<<endl;
       return 0;
}


0 0