E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ3233
[
bzoj3233
] [Ahoi2013]找硬币
一开始没什么思路...后来想到确定最大硬币面值就知道其他面值能取多少了。。而且结果是可以由较小的面值转移过来的。f[i]表示最大面值为i时的最小硬币数。a[i]表示第i个物品的价钱。f[i]=min{f[i/j]-sum{a[i]/(i/j)-a[i]/i }}=min{f[i/j]-sum{a[i]/i*(j-1)}},(j是i的因数)然后又因为显然,在符合条件的情况下面值种类越多越好(至少不会
czllgzmzl
·
2016-02-15 17:00
【
bzoj3233
】找硬币 动态规划&线性筛
这道题目居然是用动态规划,我还以为是搜索呢。。。不过据说有人找到了搜索的题解???反正我是找不到。 废话少说。不过这道题目的动态规划的性质还是比较明显的。因为对于一个硬币的集合S(假设S中的数已经排序),因为S中相邻的数成整除关系,所以显然是先把最大的用掉,再用第二大的,以此类推。例外,如果有S'∈S,显然S比S'更优,或者说,不更差。 那么,我们得到下面的转移方程,设f[x]
lych_cys
·
2016-02-01 21:00
动态规划
线性筛
【
bzoj3233
】【ahoi2013】找硬币
题意: 求确定n种货币面额x1..xn满足 x1=1 且xi为xj的整数倍(i>j) 给定n个物品价格ai 求使用上面货币最少需要硬币数(不能找零) 题解: 动态规划 听说网上的题解都是搜索的做法- - 只有一个人有说能用dp 但是没说怎么做 我想了一晚上 终于想出了dp的做法orz f[i]表示最大货币面额为i 时 所需最少硬币数 转移方程: f[i]=f
·
2015-11-02 18:43
ZOJ
BZOJ3233
[Ahoi2013]找硬币(线性筛+dp)
【题解】本蒻一直在想二维dp,看了题解才发现竟然一维就可以 设f[i]为最大面值为i时,买下所有兔纸花费的最小硬币数 f[i]=min{f[j]-sigma(a[k]/i*(i/j-1))},j|i,其中,j为次大面值,这个方程考虑的是选了i能减小多少j的使用注意,如果硬币种类很多,是不影响最优答案的(不用就行了) -----------> 重要的性质所以,可以在枚举j的这一步下手优化:规定i/j
cjk_cjk
·
2015-06-26 03:00
质因数
dp优化
线性筛
一维状态
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他