贪吃的大嘴用java_算法提高 贪吃的大嘴
试题 算法提高 贪吃的大嘴(动态规划)
问题描述
有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕,而且大嘴还特别懒,她希望通过吃数量最少的小蛋糕达到这个目的.所以她希望你能设计一个程序帮她决定要吃哪些小蛋糕.
输入格式
先输入一行包含2个整数m、n,表示大嘴需要吃美味度和为m的小蛋糕,而小蛋糕一共有n种,下面输入n行,每行2个整数,第一个表示该种小蛋糕的美味度,第二个表示蛋糕店中该种小蛋糕的总数
输出格式
输出一行包含一个整数表示大嘴最少需要吃的小蛋糕数量,若大嘴无法通过吃小蛋糕达到m的美味度和,则输出">
样例输入
10 2
4 1
2 10
样例输出
4
样例输入
10 2
4 1
7 3
样例输出
><
数据规模和约定
m ≤ 20000,小蛋糕总数量≤50.
思路:
此题一看就知道是一个多重背包题,只不过我们要求吃的小蛋糕数量。我们知道多重背包就是可以选物品n个,我们首先把01背包的程序的for循环写出来。然后在考虑多重的for如何写。
我们知道当物品i选择一次后就会选择下个物品了,那我们可以选在原来的基础上嵌入一个for用来表示当前选择了i物品的次数,由此我们dp[j]就等于dp[j-k*a[i][0]]+k和dp[j]相互比较了。dp[j]表示当前我j的美味度时最少需要吃的小蛋糕数量。我们要去他们的最小值所以我们的初始化要尽可能的大,dp[0]=0一个边界值。
程序:
m,n=map(int,input().split())
dp=[9999999999 for i in range(20005)] #初始化
a=[]
for i in range(n):
a.append(list(map(int,input().split()))) #存储物品
dp[0]=0
for i in range(n): #种类
for j in range(m,a[i][0]-1,-1): #当前美味度
for k in range(1,a[i][1]+1):# 当前的物品的次数
if k*a[i][0]>j: #防止超出背包容量
break
dp[j]=min(dp[j-k*a[i][0]]+k,dp[j])
if dp[m]==9999999999:
print(">
else:
print(dp[m])
禁止转载。仅用于自己学习。对程序错误不负责。
贪吃的大嘴用java_算法提高 贪吃的大嘴相关推荐
- Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
算法提高 贪吃的大嘴 时间限制:1.0s 内存限制:256.0MB 问题描述 有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕 ...
- 贪吃的大嘴java_Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
算法提高 贪吃的大嘴 时间限制:1.0s 内存限制:256.0MB 问题描述 有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕 ...
- 【蓝桥练习系统】【多重背包】 算法提高 贪吃的大嘴
问题描述 有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕,而且大嘴还特别懒,她希望通过吃数量最少的小蛋糕达到这个目的.所以她 ...
- 【蓝桥杯练习】算法提高 贪吃的大嘴
问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入格式 输入的第一行包含两个整数n, m,分别表示物品的个数和背包能 ...
- 9 大主题!机器学习算法理论面试题大汇总
机器学习是一门理论性和实战性都比较强的技术学科.在应聘机器学习相关工作岗位时,我们常常会遇到各种各样的机器学习问题和知识点. 算法理论基础不仅包含基本概念.数学基础,也包含了机器学习.深度学习相关.今 ...
- 【机器学习基础】9 大主题!机器学习算法理论面试题大汇总
机器学习是一门理论性和实战性都比较强的技术学科.在应聘机器学习相关工作岗位时,我们常常会遇到各种各样的机器学习问题和知识点. 算法理论基础不仅包含基本概念.数学基础,也包含了机器学习.深度学习相关.今 ...
- 蓝桥杯练习系统习题-算法提高2
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高2 题目搜索方式:Ctrl+F--> 输入题目名称-> ...
- 蓝桥杯练习系统习题-算法提高1
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高1 题目搜索方式:Ctrl+F--> 输入题目名称-> ...
- 文献记录(part75)--基于最大平均熵率的大数据关联聚类算法
学习笔记,仅供参考,有错必纠 基于最大平均熵率的大数据关联聚类算法 摘要 聚类是数据挖掘和机器学习中的基本任务之一 . 传统聚类方法由于其设计中对簇结构假设的限制 , 导致算法在不符合其假设的数据集上 ...
最新文章
- IM开发基础知识补课(三):快速理解服务端数据库读写分离原理及实践建议
- hive 运行命令后FAILED: Execution Error, return code 137 from org.apache.hadoop.hive.ql.ex ec.mr.MapredLoc
- 1.7编程基础之字符串
- python音乐下载器-支持所有主流平台-python脚本源码下载
- 01-09 Linux三剑客-awk
- c++ string类型转换为char *类型
- linux Operation not permitted
- WPF使用中知识点总结一
- 金融反欺诈-交易基础介绍
- C/C++ 找出最大素数 算法
- 带头结点的单链表的创建(头插法和尾插法)
- ONLYOFFICE Docs如何与NEXTCLOUD 24连接集成
- V4L2驱动详解 API翻译
- JVM,堆,栈,方法区之间的关系
- 面向单片机编程(三)- 数码管显示
- 高通王翔:每年收入20%投入研发
- CCNA实验四十 模拟ADSL与Modem拨号
- 计算机数据实验报告,计算机数据处理实验报告.doc
- 医学类计算机基础考试卷,计算机基础试题练习题库.doc
- 8051单片机的内核的结构及运行过程解析
热门文章
- 洛谷——P1151 子数整数
- mysql按日期查询数据_mysql按日期查询数据
- 【分享】终端命令工具 自动生成vue组件文件以及修改router.js
- Promise API 简介
- Unity 自定义Log系统
- 服务器--apache启用多个端口的方法
- CentOS7上使用bind9搭建DNS主从服务器
- 【李宏毅2020 ML/DL】P82 Generative Adversarial Network | Improving Sequence Generation by GAN
- 【李宏毅2020 ML/DL】P78 Generative Adversarial Network | fGAN: General Framework of GAN
- 【李宏毅2020 ML/DL】P73 More about Anomaly Detection