第二题: 设<cost,price>为粽子的面粉消耗和价格数对。 先算出来每种粽子如果不限面粉的话最多能做出多少个,然后将所有粽子的数对加入到一个数组中,就是能做多少个就加多少次。 此时问题转化为在面粉约束下,选择数组中的哪几个粽子来制作,最后总的price最大。 设dp[n][f]=max_price为在数组index为n的时候,剩余面粉为f的时候,可以获得的最大价格。(数组index为n的含义为,对前n个元素进行选择,每个元素都是可选可不选) 然后每次循环对dp[n]进行遍历: dp[n][f-cost[i]] = max(dp[n-1][f]+price,dp[n][f-cost[i]]); <-----生产 dp[n][f]=max(dp[n-1][f],dp[n][f]); <-----不生产 最后输出dp数组中最大值即可。 写的有些匆忙,请大神来指点🤐
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务