背包
zzk_233
这个作者很懒,什么都没留下…
展开
-
bzoj 1222 产品加工
感觉是很套路的题,对于两个或者多个状态的更新时,可以把一个设为维度,本题设dp为dp[i][j]表示第i个产品A加工时间为j时, B的加工时间是多少,对于转移有三种情况 1.由A来做, 2.由B来做, 3.一起做, 对于没有的情况要赋成正无穷,因为当前为一定要更新,所以可以先从1更新。初值为dp[0][0]=0,因为是背包,可以滚掉第一维。 #include<cstdio>...原创 2018-11-06 15:57:59 · 151 阅读 · 0 评论 -
bzoj 1042: [HAOI2008]硬币购物
因为有了个数的限制,我们可以考虑容斥原理,首先对于整体求完全背包,dp值代表值为i的选择方式。 那么有一个超过限制的情况就是选择这个面值的多了一个,那么贡献就是c[i]*(d[i]+1),所以应该减去dp[s-(c[i]*(d[i]+1))]。 利用容斥,应该减去奇数个超限制的,加上偶数个超限制的。 #include<cstdio> #include<cmath> ...原创 2018-11-07 19:12:48 · 129 阅读 · 0 评论