关于硬币问题能否贪心的证明

硬币问题是一个很经典的算法问题,对于给出面值不同的硬币,决定了是否可以直接通过贪心求解,比如1元2元5元就可以用优先取5的策略,而1元4元5元就不可以
那么这个问题为什么会出现不同,这就涉及到贪心算法的证明,很多时候我们往往不在意这些贪心的完整证明,只要大致没有反例,我们就直接应用,但闲来思考,发现了一些关于硬币问题贪心的证明方法
就比如硬币1 2 5,我们如果无论要构造多少的面值,都考虑5的构造方法,如果只有一个5就要用5个一或3个二或两个二一个1来达成而五以下的数分别要1 1 2 2张硬币才能凑到所以对于1-9的所有选法我们进行统计发现5到九的情况都是可以优先选5的,而在1-9之外的数一定是5的倍数,不用讨论。或者说6到九的部分都是选5的策略更优秀,实质上,这道题的贪心证法好像就是一种局部dp,只在1-2n-1中讨论问题对于所有类似问题都是一样14 5之所以不可行就是因为在n==8是不选5可以得到最优解。
在这里插入图片描述
这张图所说的其实就是这个意思,你少用的内枚五元需要用这些方式来弥补。在6到9的范围中两者比较发现用五的更有即可证明贪心的可行性

发布了48 篇原创文章 · 获赞 17 · 访问量 4472

猜你喜欢

转载自blog.csdn.net/weixin_45757507/article/details/104205279