动态规划
橘子汽水$
勇往直前,保持初心~~~
展开
-
CodeForces 448C(分治)
题意:有n个长度不一样的木板(竖着放),刷子宽度是1,每次只能横着刷或者竖着刷。求能刷完全部木板的最小次数。 题记:我们每次都先打横刷(即在这一组木板中找到最短的木板),每次都与全部打竖刷取最小值。之后递归即可。 例如: 5 3 1 2 2 首先打横刷一次,就变成了: 4 2 0 1 1 这时我们递归左边(4,2)+右边(1,1)+1,每次递归的值都要与竖着刷的情况取最小值,就像左边(4,2)的情况,打横刷是3次(两次横一次竖),全部打竖刷是2次,所有左边取最小值2,同理右边取最小值1,再加上一开始.转载 2020-08-25 10:35:21 · 223 阅读 · 0 评论 -
动态规划之求拼成给定数的硬币最小数
题目:给定一堆固定面值的硬币,比如2,5,7,求拼成指定数值所花费的最小硬币数,比如给定27,最小硬币数应为5,硬币分别为:5,5,5,5,7。这里只用到了一个7,如果自己枚举,可能会先尽可能的用7,那么硬币为:7,7,7,2,2,2,这里就用到了6枚硬币,不是最小数量。 分析:设ak代表最后一枚硬币面值,则ak只可能是2,5,7,本题的最后一步为当 前k-1枚硬币拼法确定的情况下,加上最后一枚硬币ak的面值即可。 设f(x)=最小用多少枚硬币拼出x, 当ak=7时,f(27)=f(27-7)+1 当ak=原创 2020-08-07 10:43:25 · 394 阅读 · 0 评论