首页 新闻 会员 周边 捐助

简单的算法问题

0
悬赏园豆:30 [已解决问题] 解决于 2014-10-10 19:31

 有谁能给我说一下思路吗,状态转移方程怎么列的,谢谢了

 

                                                   D.机器人

时限:1s

【题目描述】

Paul有n个重物堆在一条线上。该重物由1连续编号到n,最左边的物品编号为1,最右边的物品编号为n。已知每个物品的重量,第i个物品的重量为Wi公斤。Paul需要收集所有重物,但是他很懒。因此他打算用他全新的机器人。该机器人有两个不同的手臂 - 左手和右手,可以连续执行以下操作:

       用左手拿最左边的重物,花费Wi·l能量单位(Wi是最左边的物品的重量,l是某一参数)。如果与之前的动作是一样的(上一次用左手),机器人须额外花费Ql的能量单位;
       用右手拿最右边的重物,花费Wj·r能量单位(Wj是最右边的物品的重量,r是某一参数)。如果与之前的动作是一样的(上一次用右手),机器人须额外花费Qr的能量单位;

Paul想让机器人花费尽可能少的能量来帮他完成任务。他想让你来解决这个问题。你的任务是求解机器人收集所有重物可花费的最低能量值。

 

【输入】

第一行是一个数T,代表有T组输入样例

每个输入样例样例有两行:第一行是五个变量n, l, r, Ql, Qr (1 ≤ n ≤ 105; 1 ≤ l, r ≤ 100; 1 ≤ Ql, Qr ≤ 104);第二行是n个重物的重量w1,w2….wn (1 ≤ wi ≤ 100)。

 

【输出】

每个样例只有1个数,代表机器人最小消耗的能量

 

【输入样例】

2
3 4 4 19 1
42 3 99
4 7 2 3 9
1 2 3 4
 

【输出样例】

576

34

尽善尽美#的主页 尽善尽美# | 初学一级 | 园豆:152
提问于:2014-10-07 22:37
< >
分享
最佳答案
0

真的代码实现自然很难,但网上应该有现成的代码。

给你几点建议:

1、连续同一个方向拿物品,要有额外开支,这个是超出的,为了节省成本,自然要换方向拿。

2、是否真的换方向就成本更低呢?取决于换方向后拿取的成本与额外开销之间的差值。

你可以先写出代码来,如果有问题,让我帮你修改下还可以。

收获园豆:30
519740105 | 大侠五级 |园豆:5810 | 2014-10-08 08:47

这两天课太多。。。现在才回补哈意思。

我本来以为动态规划可以做的。。但是贪心就可以了(老师说的,其实我不懂),但是动态规划刚学不久,好多时候分不清或者状态转移方程列不出来,你能给我指导下吗

尽善尽美# | 园豆:152 (初学一级) | 2014-10-09 18:58

@尽善尽美#: 对这些理论我也了解不多,可以百度看。

519740105 | 园豆:5810 (大侠五级) | 2014-10-09 20:07

@519740105: 我还是要花些时间理解QAQ,多谢你百忙中来回复。有好多东西想问,交个朋友可好?

尽善尽美# | 园豆:152 (初学一级) | 2014-10-10 19:31

@尽善尽美#: 可以啊。68558710

519740105 | 园豆:5810 (大侠五级) | 2014-10-10 21:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册