【bzoj3233】【ahoi2013】找硬币
题意:
求确定n种货币面额x1..xn满足 x1=1 且xi为xj的整数倍(i>j)
给定n个物品价格ai 求使用上面货币最少需要硬币数(不能找零)
题解:
动态规划
听说网上的题解都是搜索的做法- - 只有一个人有说能用dp 但是没说怎么做
我想了一晚上 终于想出了dp的做法orz
f[i]表示最大货币面额为i 时 所需最少硬币数
转移方程:
f[i]=f[j]-Σ(a[k]/i)*(i/j-1) (j为i的因数,/为整除)
其实这个方程也不难
意思就是求每个物品能用几次i 硬币支付 而没有i 硬币要得到i 的价值就最少需要i/j个硬币
所以每用一次i 硬币就能减少使用 i/j-1个硬币
优化:
这样做对每个i 可能有√a 个因数 所以时间复杂度为O(n√(maxa)maxa)
显然会超时 能做一个优化 j只要取(i/i的质因数)
否则设 i/j 不是质数 i/j存在>1的因数d 则加入i/d这个面值以后 只会使答案更优
这样i的质因数个数为log(i) 所以时间复杂度为O(nlog(maxa)maxa)
【bzoj3233】【ahoi2013】找硬币的更多相关文章
- [Bzoj3233][Ahoi2013]找硬币[基础DP]
3233: [Ahoi2013]找硬币 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 924 Solved: 482[Submit][Status][ ...
- BZOJ3233:[AHOI2013]找硬币(DP)
Description 小蛇是金融部部长.最近她决定制造一系列新的货币.假设她要制造的货币的面值为x1,x2,x3… 那么x1必须为1,xb必须为xa的正整数倍(b>a).例如 1,5,125, ...
- [bzoj3233] [Ahoi2013]找硬币
一开始没什么思路...后来想到确定最大硬币面值就知道其他面值能取多少了..而且结果是可以由较小的面值转移过来的. f[i]表示最大面值为i时的最小硬币数.a[i]表示第i个物品的价钱. f[i]=mi ...
- [AHOI2013]找硬币(搜索)
[Ahoi2013]找硬币 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 348 Solved: 114[Submit][Status] Descri ...
- BZOJ 3233: [Ahoi2013]找硬币( dp )
dp(x)表示最大面值为x时需要的最少硬币数. 枚举x的质因数p, dp(x) = min( dp(x/p) - (p-1) * sigma[a[i]/x] ). ----------------- ...
- BZOJ 3233: [Ahoi2013]找硬币
BZOJ 3233: [Ahoi2013]找硬币 标签(空格分隔): OI-BZOJ OI-DP Time Limit: 10 Sec Memory Limit: 64 MB Description ...
- 【bzoj 3233】[Ahoi2013]找硬币 ——搜索
Description 小蛇是金融部部长.最近她决定制造一系列新的货币.假设她要制造的货币的面值为x1,x2,x3… 那么x1必须为1,xb必须为xa的正整数倍(b>a).例如 1,5,125, ...
- 【BZOJ 3233】 [Ahoi2013]找硬币
[题目 描述] 小蛇是金融部部长. 最近她决定制造一系列新的货币. 假设她要制造的货币 的面值为 x1, x2, x3… 那么 x1 必须为 1, xb 必须为 xa 的正整数倍(b>a). 例 ...
- BZOJ3233【AHOI2013】找硬币
题面 题解 最优肯定是尽可能用大面值硬币 设$f[i]$表示最小面值为$i$时的最小答案 则:(令$p$是$i$的最小质因子) $$ f[\frac ip]=min(f[\frac ip], f[i] ...
随机推荐
- NSDate & NSDateFormatter
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasep ...
- 遍历并remove HashMap中的元素时,遇到ConcurrentModificationException
遍历并remove HashMap中的元素时,遇到ConcurrentModificationException for (Map.Entry<ImageView, UserConcise> ...
- Mvc Kissy uploader实现图片批量上传 附带瀑布流的照片墙
前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...
- sql Server 的基本函数
--聚合函数 use pubs go select avg(distinct搜索 price) --算平均数 from titles where type='business' go use pubs ...
- 面向函数范式编程(Functional programming)
函数编程(简称FP)不只代指Haskell Scala等之类的语言,还表示一种编程思维,软件思考方式,也称面向函数编程. 编程的本质是组合,组合的本质是范畴Category,而范畴是函数的组合. 首先 ...
- UVA 10537 The Toll! Revisited uva1027 Toll(最短路+数学坑)
前者之所以叫加强版,就是把uva1027改编了,附加上打印路径罢了. 03年的final题哦!!虽然是水题,但不是我这个只会做图论题的跛子能轻易尝试的——因为有个数学坑. 题意:运送x个货物从a-&g ...
- django - settings
1.doc - https://docs.djangoproject.com/en/1.6/topics/settings/ from django.conf import settings # 加载 ...
- LeetCode: Interval
(1)Merge Intervals https://leetcode.com/problems/merge-intervals/ Given a collection of intervals, m ...
- 【流媒體】live555—VS2010 下live555编译、使用及测试
Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编 ...
- directdraw显示yuv视频,出现屏保时,yuv显示不出来,表面丢失
原因是: DDrawSurface 丢失, DDraw表面在很多情况下都会丢失(如:启动其他全屏独占程序,屏保,或锁屏时), 表面丢失其实就是表面所使用的内存或显存被DirectDraw系统释放, 分 ...