- 博客(1)
- 收藏
- 关注
原创 C++多重背包做包子
题目: 给n个面团,有m种馅料,每种馅料有ai个,每个馅料的包子消耗bi个馅料和ci个面团,可以卖di块,如果没有馅料可以做一个完整的包子,就可以做馒头,每个馒头消耗c0个面团,可以卖d0块,求最大收益; 解题思路: 多重背包的变式,需要三个循环,i控制哪种馅料,j控制可以坐几个,k控制最大值,每次做包子的时候比较最多的能做几个即min(ai/bi,n/ci); 之后就是状态方程,dp[k]=max(dp[k-c[i]]+d[i],dp[k]);k要从后往前跑,这样数据才不会重复加,k的终点位置..
2021-07-09 09:31:24
110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人