摘要:
题意: 给定身上的4种硬币,分别是1 ,5 ,10, 25面额各有多张,要求组成面额p的硬币尽可能多。输出组成p的4种硬币各自的数量。思路: 多重背包,300+ms。用01背包+二进制的方法。记录下所有的硬币的个数以及4种硬币分别的个数,注意初始化dp数组的不同之处。 1 #include 2... 阅读全文
摘要:
题意:一样是求钱的转换方案数,但是这次单位下降到分,但给的是元为单位的,所以是浮点的,但是固定有两位小数。思路:数据都放大100倍来计算,去除精度问题,转成整型时要注意精度。即使给的是0.02,乘以100后的结果不一定是2,而是2左右,所以再加上一个很小的数再转即可,比如0.0001; 1 #inc... 阅读全文
摘要:
题意:给出整数n和k,n代表拥有的钱数量,k代表有k种工具,其价钱分别为1~k。求n元能有多少种购买的方案。思路:k最大有100,数量过大,要用大数。其他的基本和完全背包一样。 1 #include 2 #include 3 #include 4 #include 5 using ... 阅读全文
摘要:
题意:有5种硬币,个数无限的,组成n元的不同方案有多少种?思路:常规完全背包。重点在dp[0]=1,dp[j]中记录的是组成 j 元的方案数。状态转移方程dp[j+coin[i]]+=dp[j]。 1 #include 2 using namespace std; 3 int coin[]={1,... 阅读全文