poj 2184解题报告(详细)

这篇博客详细介绍了如何解决POJ 2184问题,该问题涉及动态规划(DP)处理包含负数的智力和幽默感总和最大值。博主分享了解题过程,从理解负数处理、状态定义到状态转移方程,强调了将问题转换为01背包问题的技巧,并提供了DP数组的初始化和优化方法。
摘要由CSDN通过智能技术生成

题目链接:http://poj.org/problem?id=2184

博主也是新学dp的,不保证下面的内容的正确性,可能自己哪里理解错了,欢迎指正。

也是看了其它的解题报告,不过写得有点简略了,理解上花了点时间,下面相当于加深理解。

对于一个新学dp的人来说,这道题是噩梦。负数的处理,状态,状态转移,变量处理。当然,啃掉他,收获绝对很大,对dp会有新的认识。

先来说下题目大意吧,给出N头牛,每头牛都有智力值和幽默感,然后,这个题目最奇葩的地方是,它们居然可以是负数!!现在叫你求出其中的牛中,智力值总数和幽默感总数加起来最大的值,当然,智力值的总数必须大于等于零,幽默感总数也是。

一开始看到我直接跪了,尽管知道这题可以用dp解,但毫无思路,去找解题报告也是看不出个因为所以然。折磨了一两个钟,终于明白了点什么。

暂且不管负数,对于每头牛,我们有两种选择,要么选,要么选。看到这,就会觉得跟01背包很像,但是有 2 个变量来描述此状态的特征,智力,幽默感,并且他们可能是负数的。
如果此题选择dp来解,我们要想办法把它转换成01背包。

下面转换01背包的方法。
首先,下面的模板是 一维数组解背包问题 。

dp[i] = max(dp[i],dp[i-w[i]]+v[i])
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值