完全背包问题 买书(信息学奥赛一本通)
Posted 行码棋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完全背包问题 买书(信息学奥赛一本通)相关的知识,希望对你有一定的参考价值。
【题目描述】
小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。
问小明有多少种买书方案?(每种书可购买多本)
【输入】
一个整数 n,代表总共钱数。(0≤n≤1000)
【输出】
一个整数,代表选择方案种数。
【输入样例】
20
【输出样例】
2
【输入样例】
0
【输出样例】
0
- 注意初始化
- 这题可以转化为完全背包问题,因为书的数量可以随便选
- 完全背包体积要从小往大枚举
#include<bits/stdc++.h>
using namespace std;
int n,f[1005];
int main()
{
cin>>n;
int v[] = {10,20,50,100};
f[0]=1;
for(int i=0;i<4;i++)
{
for(int j=0;j<=n;j++)
if(j>=v[i])
f[j]+=f[j-v[i]];
}
if(n==0) cout<<0<<'\\n';
else cout<<f[n]<<'\\n';
return 0;
}
以上是关于完全背包问题 买书(信息学奥赛一本通)的主要内容,如果未能解决你的问题,请参考以下文章