【完全背包求方案数问题】AcWing1023.买书(赋练习题目)

【题目链接】活动 - AcWing

输入样例1:
复制代码
20
输出样例1:
复制代码
2
输入样例2:
复制代码
15
输出样例2:
复制代码
0
输入样例3:
复制代码
0
输出样例3:
复制代码
1

【代码】

cpp 复制代码
//1023.买书------完全背包问题
 #include<bits/stdc++.h>
 using namespace std;
 int a[5]={0,10,20,50,100};
 int dp[5][1010];
 int main()
 {
 	int n;
 	cin>>n;
 	dp[0][0]=1;
 	for(int i=1;i<=4;i++)
 	{
 		for(int j=0;j<=n;j++)
 		{
 			dp[i][j]=dp[i-1][j];
 			if(j>=a[i]) dp[i][j]+=dp[i][j-a[i]];
 		}	
 	}	
 	cout<<dp[4][n];
 	return 0;
 } 

【完全背包优化后代码】

cpp 复制代码
//优化后
//1023.买书------完全背包问题
#include<bits/stdc++.h>
using namespace std;
int a[5]={0,10,20,50,100};
int dp[1010];
int main()
{
	int n;
	cin>>n;
	dp[0]=1;
	for(int i=1;i<=4;i++)
	{
		for(int j=a[i];j<=n;j++)
		{
			dp[j]+=dp[j-a[i]];
		}	
	}	
	cout<<dp[n];
	return 0;
} 

【相似题目------AcWing1371.货币系统】

【题目链接】 1371. 货币系统 - AcWing题库

输入样例:
复制代码
3 10
1 2 5
输出样例:
复制代码
10

【代码及注释】

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll dp[30][N];
int v[N];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>v[i];		
	}
	dp[0][0]=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=m;j++)
		{
			dp[i][j]=dp[i-1][j];//不选择第i个物品
			if(j>=v[i]) dp[i][j]+=dp[i][j-v[i]]; 
		}
	}
	cout<<dp[n][m];
	return 0;
} 

【优化后代码】

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll dp[N];
int v[N];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>v[i];		
	}
	dp[0]=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=v[i];j<=m;j++)
		{
			dp[j]+=dp[j-v[i]]; 
		}
	}
	cout<<dp[m];
	return 0;
} 
相关推荐
千寻girling1 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
颜酱4 小时前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
不想写代码的星星5 小时前
std::function 详解:用法、原理与现代 C++ 最佳实践
c++
CoovallyAIHub1 天前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing1 天前
Hot100-Day14-T33搜索旋转排序数组
算法
会员源码网1 天前
内存泄漏(如未关闭流、缓存无限增长)
算法
颜酱1 天前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法
颜酱1 天前
从0到1实现LRU缓存:思路拆解+代码落地
javascript·后端·算法
CoovallyAIHub2 天前
Moonshine:比 Whisper 快 100 倍的端侧语音识别神器,Star 6.6K!
深度学习·算法·计算机视觉