18:买书
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。
问小明有多少种买书方案?(每种书可购买多本)
输入
一个整数 n,代表总共钱数。(0 <= n <= 1000)
输出
一个整数,代表选择方案种数
样例输入
样例输入1:
20
样例输入2:
15
样例输入3:
0
样例输出
样例输出1:
2
样例输出2:
0
样例输出3:
0
1、题意:多重背包问题。
2、思路:用一般的多重背包方法求就可以了。
3、代码:
#include<iostream>
using namespace std;
int money[1005]={1};
int m[4]={10,20,50,100};
int main()
{
int i,j,n;
cin>>n;
for(i=0;i<4;i++)
for(j=0;j<=n;j++)
{
if(j-m[i]>=0)
money[j]+=money[j-m[i]];
}
money[0]=0;
cout<<money[n]<<endl;
return 0;
}
4、总结:水题。