宝石交易-动态规划
【问题描述】
自从八戒发现了魔法森林的秘密,他就开始了“贪婪的小生意”。他开了一个黑店,专门倒卖各种珠宝,今日卖完次日偷,八戒的耳朵已经装不下赚得这些碎银子了。假设八戒手里有v种价值不同的宝石,买家想要购买价值n元的宝石若干, 请问有八戒有多少种销售方式呢?注: 假设每种宝石的数量是无穷的。
输入: 第一行两个整数v,n分别表示宝石种数和买家出价数。第二行v个整数,分别表示v种宝石的价值。
输出: 一个整数,表示销售方法数。
【样例输入】
3 8
1 2 5
【样例输出】
7
状态转移方程: f[i][j]=f[i-1][j]+f[i][j-value[i]] (j>=value[i])
#include<iostream> using namespace std; int f[101][101], val[101], v, n; int main(){ // 输入宝石的种类和背包价值。 cin>>v>>n; for(int i=1; i<=v; i++){ cin>>val[i]; } // 初始化第一列为1。 for(int i=1; i<=v; i++){ f[i][0]=1; } for(int i=1; i<=v; i++){ for(int j=1; j<=n; j++){ if(val[i]<=j){ f[i][j]=f[i-1][j]+f[i][j-val[i]]; }else{ f[i][j]=f[i-1][j]; } } } cout<<f[v][n]; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】