POJ1742 Coins 题解(AcWing 281,hdu 2844)
问题描述:
给定N种硬币,其中第 i 种硬币的面值为Ai,共有Ci个。
从中选出若干个硬币,把面值相加,若结果为S,则称“面值S能被拼成”。
求1~M之间能被拼成的面值有多少个。
解题思路:
这题很明显是个多重背包问题,只需设dp(i,j)dp(i,j)dp(i,j)为前iii种硬币能否组成面值SSS,根据多重背包的思路可以使用二进制优化每个物品数量可以解决,但是我提交了只在hud上过了,poj和acwing都TLE了。多重背包也能用优先队列优化,我提交后再三个平台都TLE了(???是我写的不够漂亮)?
这
原创
2020-07-31 10:59:51 ·
218 阅读 ·
0 评论