完全背包问题 买书(信息学奥赛一本通)

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;
}

以上是关于完全背包问题 买书(信息学奥赛一本通)的主要内容,如果未能解决你的问题,请参考以下文章

信息学奥赛一本通要多少钱

信息学奥赛一本通为啥不通过

长春市哪里有卖这本信息学奥赛一本通c++的书店?

信息奥赛一本通 1060:均值

信息学奥赛一本通 5.2 树形动态规划

信息学奥赛一本通第三部分_队列 ex2_3produce 产生数