查看: 1916| 回复: 6
跳转到指定楼层
上一主题 下一主题
收起左侧

一道dp算法面试题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 qq274880049 于 2017-10-10 08:52 编辑

小弟碰到一个dp算法题目,请地里各位大佬提供一些思路,题目如下:
有n个物体准备从,某A点运送到B点。用W[n]表示每个物体的重量,每个物体的运费跟重量的关系是一个一元二次方程,V(w) = aw^2+bw+c。 每个物体到达B的顺序必须与原始顺序一只,比如:第j个物体,可以与j-1个物体同时或者晚到。现在要求如何安排物体的运送方式,才能够获得最低的花费。

也就是如何组合,比如输入w1, w2, w3, w4, w5。 你要求在V(w) = aw^2+bw+c这个关系下,如何组合才能够获得最小运费。
回答就加米~~




上一篇:Expression Add Operators 时间复杂度为什么是4^n?
下一篇:Leetcode里面有没有哪题是最好用dijkstra算法解的?
🔗
danceonly 2017-10-10 09:04:00 | 只看该作者

回帖奖励 +1

全局:
可以看成是一个划分问题:1 2 3 | 4 5 | 6 7 8。题目就是让求如何设置这些隔板使得sum{V(w)}最小,如果n比较小的话就直接O(N^2)dp就好了,dp[i]表示0...i-1全部运送过去后的最小花费。

评分

参与人数 1大米 +1 收起 理由
qq274880049 + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
 楼主| qq274880049 2017-10-10 09:06:45 | 只看该作者
全局:
danceonly 发表于 2017-10-10 09:04
可以看成是一个划分问题:1 2 3 | 4 5 | 6 7 8。题目就是让求如何设置这些隔板使得sum{V(w)}最小,如果n比 ...

请问可以说的稍微详细点吗? 定义状态用的也是dp(i)表示前i个的最小花费,但是仔细一想不太对,因为没次新加进来一个物体,前面所有组合好的,都有可能被打乱,得重新划分间隔。
回复

使用道具 举报

🔗
danceonly 2017-10-10 09:12:30 | 只看该作者
全局:
"每个物体的运费跟重量的关系是一个一元二次方程,V(w) = aw^2+bw+c。"这句话,我的理解是,运送是一批一批地运送,是吧?就是说,如果一次运送物体a(3) b(4) 需要花费V(3+4)的代价? 如果理解没错的话,dp[i]在寻找最优的时候需要遍历前面所有的dp[j](0 < j < i),然后转移方程就是dp[i] = max(dp[i], dp[j] + V(sum[j+1, ..., i]))。如果理解错的话,当我没说过。
回复

使用道具 举报

🔗
 楼主| qq274880049 2017-10-10 09:21:37 | 只看该作者
全局:
danceonly 发表于 2017-10-10 09:12
"每个物体的运费跟重量的关系是一个一元二次方程,V(w) = aw^2+bw+c。"这句话,我的理解是,运送是一批一批 ...

你的理解是没错的,但是状态转移方程,不是你写的那样。因为你得考虑j+1 - i个物体不一定是放在一起的。 可能j+1 到k 放一起, k+1到i放一起。 所以直接把j+1到i的重量相加,不一定能够得到最小运费。

如果我没想错的话。
回复

使用道具 举报

🔗
danceonly 2017-10-10 09:32:21 | 只看该作者
全局:
"因为你得考虑j+1 - i个物体不一定是放在一起的。 可能j+1 到k 放一起, k+1到i放一起。"仔细思考下,这种可能在dp[i] = min(dp[i], dp[k] + V(sum[k+1, ..., i]))的时候会被枚举掉,因为dp[k]包含了dp[j] + V(sum[j+1, ..., k]),或者说dp[k] <= dp[j] + V(sum[j+1, ..., k])。// 之前的max -> min
回复

使用道具 举报

🔗
 楼主| qq274880049 2017-10-10 09:34:34 | 只看该作者
全局:
danceonly 发表于 2017-10-10 09:32
"因为你得考虑j+1 - i个物体不一定是放在一起的。 可能j+1 到k 放一起, k+1到i放一起。"仔细思考下,这种 ...

dp[i] = min(dp[i], dp[k] + V(sum[k+1, ..., i])),大概想明白了,dp[i]你初始化成正无穷。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表