废话不说,上题目!
基本思路:乍一看,康康想到的是贪心,但是(此处转折很重要),面额有坑,贪心是不能实现的,既然是求最少张数,可以考虑动态规划。emmm,康康听说一些大佬用搜索和暴力也可以快速ac,此处不详细叙述,可以自己尝试,反正康康是不会的,见谅。
咳咳,回到正题,为什么贪心不行呢,举例就明白了:9不是分解为7 1 1 ,而是4 4;18不是分解为4 5 4 5,而是7 7 4。想必聪明的ACMer已经明白了。
好啦,先上康康的代码。
此外这题可以用完全背包来写,钱的张数都是无限件,将钱的面额大小理解成背包容量,题目所求的是最少张数,那么无论面额大小多少(与面额大小w关),对于张数来说价值都是1。这样我们就可以转化成完全背包问题来解决了。
废话不多说,直接上代码!
对于完全背包一类问题不理解的朋友,可以在康康博客中查找专题资料。
康康要说的都在代码里啦!