bzoj 1716 找零钱
Description
农夫John想到镇上买些补给。为了高效地完成任务,他想使硬币的转手次数最少。即使他交付的硬币数与找零得到的的硬币数最少。 John想要买T(1<=T<=10000)样东西。有N(1<=n<=100)种货币参与流通,面值分别为V1,V2..Vn (1<=Vi<=120)。John有Ci个面值为Vi的硬币(0<=Ci<=10000)。我们假设店主有无限多的硬币,并总按最优方案找零。
Input
* Line 1: 两个整数 N 与 T 。
* Line 2: N 个数,表示 V1, V2, ..Vn。
* Line 3: N 个数,表示 C1, C2, ..Cn。
Output
* Line 1: 一个整数,表示最优方案的转手次数,如无解输出-1。
Sample Input
5 25 50
5 2 1
Sample Output
思路: 问题为多重背包和完全背包的一个结合。
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define R register int 4 #define rep(i,a,b) for(R i=a;i<=b;i++) 5 #define Rep(i,a,b) for(R i=a;i>=b;i--) 6 #define ms(i,a) memset(a,i,sizeof(a)) 7 #define gc() getchar() 8 template<class T>void read(T &x){ 9 x=0; char c=0; 10 while (!isdigit(c)) c=gc(); 11 while (isdigit(c)) x=x*10+(c^48),c=gc(); 12 } 13 int const N=10000+3; 14 int const M=100+3; 15 int const inf=1e8; 16 int v[M],c[M],n,m,f[N<<1],g[N<<1]; 17 int main(){ 18 read(n);read(m); 19 rep(i,1,20000) f[i]=g[i]=inf; 20 rep(i,1,n) read(v[i]); 21 rep(i,1,n) read(c[i]); 22 rep(i,1,n) Rep(j,20000,v[i]) rep(k,1,c[i]) { 23 if(k*v[i]>j) break; 24 f[j]=min(f[j],f[j-k*v[i]]+k); 25 } 26 rep(i,1,n) rep(j,v[i],20000) g[j]=min(g[j],g[j-v[i]]+1); 27 int ans=inf; 28 rep(i,m,20000) if(f[i]!=inf && g[i-m]!=inf) ans=min(ans,f[i]+g[i-m]); 29 if(ans==inf) ans=-1; 30 cout<<ans<<endl; 31 return 0; 32 }
View Code
转载于:https://www.cnblogs.com/ZJXXCN/p/10233625.html
bzoj 1716 找零钱相关推荐
- python【蓝桥杯vip练习题库】ALGO-232找零钱(贪心 模拟)
试题 算法训练 找零钱 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个人正在饭堂排队买海北鸡饭.每份海北鸡饭要25元.奇怪的是,每个人手里只有一张钞票(每张钞票的面值为25. ...
- PAT 1037 在霍格沃茨找零钱(20)(代码+思路)
1037 在霍格沃茨找零钱(20)(20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon) ...
- 1028: 在霍格沃茨找零钱
1028: 在霍格沃茨找零钱 时间限制: 1 Sec 内存限制: 128 MB 提交: 316 解决: 147 [提交][状态][讨论版] 题目描述 如果你是哈利·波特迷,你会知道魔法世界有它自己 ...
- 【广义找零钱问题】 贪心算法求解进制转换问题
原题如下,怪我没读懂题意就开始写代码,曲解了题意,就写出个这样的奇葩进制来.但是运行结果与我的预期(实际上是对题的的错误理解)相符. 功能(与上图无关) 实现自定义独特进制的输出.类似于找零钱问题,见 ...
- python找零钱代码_Python实现的一个找零钱的小程序代码分享
Python写的一个按面值找零钱的程序,按照我们正常的思维逻辑从大面值到小面值的找零方法,人民币面值有100元,50元,20元,10元,5元,1元,5角,1角,而程序也相应的设置了这些面值.只需要调用 ...
- $动态规划系列(2)——找零钱问题
refer:http://interactivepython.org/courselib/static/pythonds/index.html 1. 问题描述 Tom在自动售货机上买了一瓶饮料,售价3 ...
- 动态规划应用--找零钱
文章目录 1. 问题描述 2. 问题分析 2.1 回溯法求解 2.2 DP状态转移方程法 2.3 DP状态转移表法 1. 问题描述 找零问题,在贪心算法讲过.但是贪心不一定能得出最优解.假设有几种不同 ...
- C++学习之路 | PTA乙级—— 1037 在霍格沃茨找零钱 (20 分)(精简)
1037 在霍格沃茨找零钱 (20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十 ...
- 【README3】动态规划之“找零钱”说明最优子结构怎么解决
接上文:[README2]动态规划之斐波那契数列说明重叠子问题如何解决 文章目录 找零钱问题说明最优子结构 (1)何为最优子结构 (2)状态转移方程 暴力解法 (3)备忘录解决重叠子问题 (4)迭代解 ...
最新文章
- 零基础学习java软件开发攻略
- Redis的分布式锁详解
- datanode无法启动_Hadoop DataNode启动和初始化过程
- cf1556Compressed Bracket Sequence
- 比较好的一些 ConcurrentHashMap讲解博客
- 终于用上gcc-4.1编译的系统了
- 联想笔记本暗屏几乎看不见_2020年内存条推荐-选购指南(DDR3/DDR4/台式/笔记本内存)...
- VMware-workstation16 安装VM无权输出许可证密钥,请使用系统管理员账户重试
- 输入关键字生成对联_对联生成器在线生成_对联在线自动生成器下载V1.0.0|好特下载...
- 由矢量电子海图构建海底 TINDEM方法研究
- 中国行政划分代码(身份证号码前六位)
- 产品经理的小白面试~
- 视频格式那么多,MP4/RMVB/MKV/AVI 等,这些视频格式与编码压缩标准 mpeg4,H.264.H.265 等有什么关系?...
- 003-photoshop快速去掉图片背景颜色、签名放到指定文档合成图片
- Java OutputStream.write()的功能简介说明
- 报错W: APT had planned for dpkg to do more than it reported back (9 vs 16).解决方式
- 2018国赛数学建模笔记
- 四款常用浏览器比较、简介
- 图片转文字工具怎样进行批量识别?
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少(简单易懂)
热门文章
- tomcat启动报错,找不到相应的 queue,从而引发内存泄漏
- 结合源代码分析一个完整的中断过程【转】
- MFCWinInet学习
- centOS下JDK1.8的安装
- Windows Restart Manager 重启管理器
- float类型转integer_【第3章:Java基础程序设计】_Java数据类型
- 网络批量后修改服务器,企业网络批量安装服务器搭建案例
- Linux之系统操作命令
- 机构借贷平台 Maple 将上线以太坊主网并开启流动性挖矿
- Matcha已升级至0xV4版,比Uniswap和Sushi等平台节省4%的交易费