【考题题解】ACM赛未AC考题大致思路及过程详解(无代码)

这篇博客详细介绍了如何解决ACM竞赛中的几道题目,包括包子铺问题的01背包和完全背包策略,子序列个数的线性DP方法,以及湖泊填埋问题的DFS深度优先搜索策略。博主分享了具体的解题思路,但并未提供代码实现。
摘要由CSDN通过智能技术生成

1.BUNS

包子铺的伙计小丛要做一些带馅的包子并卖掉它们。

她有n 克面团和m 种馅。馅的编号从1 到 m。小丛知道第i种馅还有ai 克。 当制作含有第i种馅的包子时,小丛需要 bi 克的馅和 ci 克的面团,这样的一个包子卖di 个金币。

当然她也可以做没馅的包子,每做一个没馅包子需要c0 克面团,每个卖d0 个金币。所以,小丛可以做任何数量的有馅或者没有馅的包子,直到面团或者馅都用光了;她可以选择将所有多余的材料扔掉。

请你帮助小丛算出她最多可以赚多少金币

没错,裸的多重背包的模板题,将面团的数量看成背包总容量,每种馅看成是物品个数;然后把ai看成是物品数量,把bi看成物品可以取得件数,(处理一下即可),ci看成物品的体积,di看成物品的价值,这样就顺利转换成了多重背包

做法是:

1.将每一个有馅的饺子用二进制法,当成01背包做

2.将没馅的饺子是无限取,所以当成完全背包来做

最后,套模板~~~~~~代码不送~~

2.子序列个数

子序列的定义:对于一个序列a=a 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值