1079: PIPI的存钱罐(动态规划)
题目描述
PIPI有n种硬币,每种硬币有特定的重量cost[i] 克和它对应的价值val[i].
已知有一个承重量为m的存钱罐,里面正好装着重量为m的硬币,问你这个存钱罐中硬币的最小价值是多少? 如果不可能存在m克的情况, 那么就输出”impossible“
输入
多组输入。
第一行包括两个整数n,m(1<=n<=500,1<=m<=10000)
接下来n行,每行两个整数v,w,表示第i中硬币的价值与重量。(1<=v<=10000,1<=w<=m)
输出
输出可能的最小价值,如果不可能存在m克的情况, 那么就输出”impossible“
样例输入
2 100 1 1 30 50 2 100 1 1 50 30
样例输出
60 100
#include <iostream>
using namespace std;
#define INF 1e9
int main(void){int n,m;while (scanf("%d%d",&n,&m)!=EOF){int f[m];int cost[n];//每种货币重量 int val[n]; //每种货币价值 for (int i=1;i<=n;i++)scanf("%d%d",&val[i],&cost[i]);for (int i=0; i<=m;i++) f[i]=INF;//初始化全部拼不成功 f[0]=0;//n种硬币,重量为m for (int i=1;i<=n;i++){for (int j=cost[i];j<=m;j++){f[j]=min(f[j],f[j-cost[i]]+val[i]);
// printf("f[%d]=%d\n",j,f[j]);
// input:
// 2 100
// 1 1
// 30 50
// output:
// f[1]=1
// f[2]=2
// f[3]=3
// f[4]=4
// f[5]=5
// ......
// f[100]=60 }}if (f[m]==INF) printf("impossible\n"); else printf("%d\n",f[m]);}return 0;
}
1079: PIPI的存钱罐(动态规划)相关推荐
- 1079: PIPI的存钱罐(完全背包)
题目描述 PIPI有n种硬币,每种硬币有特定的重量wei[i] 克和它对应的价值val[i]. 已知有一个承重量为m的存钱罐,当里面正好装着重量为m的硬币时,问你这个存钱罐中硬币的最小价值是多少? 如 ...
- PIPIOJ 1079: PIPI的存钱罐 完全背包
题目: http://39.106.164.46/problem.php?id=1079 思路: 题目要求装满,然后又是完全背包.注意初始化时将dp初始化为INF,dp[0]=0即可. 代码如下: # ...
- 1079 PIPI的存钱罐
这个问题的原型就是完全背包问题模型,所不同的是完全背包问题要求的是最大价值,而这个是最小价值 完全背包问题的模型代码是 for (int i = 1; i <= n; ++ i)for (int ...
- java实现动态规划算法解决存钱罐问题(piggy bank)
一.实验目的 练习使用动态规划算法解决实际问题(使用Java语言实现) 二.实验内容 [问题描述] 给定一个空存钱罐的重量和这个存钱罐最多能装进去的重量,现在需要在不打破这个存钱罐的情况下猜测里面最少 ...
- 【动态规划】完全背包:存钱罐(恰好装满)
背包恰好装满问题: 设有n个物品,其重量(或占用空间)分别为w1, W.,...Wn.价值分别为V1,2....n. ← 给定一个总容量为W的背包,每个物品只能整个放入背包或不放.← 问:如何选择放入 ...
- 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)
本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以 降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...
- 动态规划系列之六01背包问题
法外狂徒张三是一个探险家,有一次巧合之下进入到一个有宝藏的洞穴里.这个洞穴有很多个不重复的宝贝,同时每个宝贝的重量也不一样.具体来说有: A 重 2 价值为 2 B 重 3 价值为 6 C 重 4 价 ...
- 【动态规划】 Little Sub and Piggybank
目录 [动态规划] Little Sub and Piggybank Problem Input Output Sample Input Sample Output Solution Code [动态 ...
- 伍六七带你学算法 动态规划 ——不同路径
力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...
最新文章
- Websphere设备、企业部署应用程序 【应用】
- Matplotlib的几个典型绘制实验
- php 缺少参数,php - 如何验证JSON响应中是否缺少参数-Laravel 6 - 堆栈内存溢出
- VS调试查看寄存器学习总结
- 书本练习题7print函数使用
- c语言中短路逻辑有与有或例子,C语言零基础教程之运算符和表达式,全面解析,轻松上手...
- springmvc自定义404错误处理
- 人工智能原理与方法作业1
- C语言中报段错误(核心已转储)的常见问题
- sort和sorted的区别
- C/C++回溯经典练习:马的走法
- 面试题:你让工人为你工作7天,给工人的回报是一根金条...
- 构建新型现代化智慧博物馆之物联网环境监控方案
- 学习Maya学习MayaArnoldArnold
- oa系统用什么云服务器,oa系统用什么云服务器
- Javaweb——水果系统基础版
- 线程的同步与互斥:互斥锁
- 【报告】德勤管理咨询2019年境内外TMT标杆企业高管薪酬与激励调研报告
- msr颜色复原matlab程序,Retinex 图像去模糊(含MATLAB代码)
- 医美分期回归理性,这家分期机构如何跑进第一梯队