有谁能给我说一下思路吗,状态转移方程怎么列的,谢谢了
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
真的代码实现自然很难,但网上应该有现成的代码。
给你几点建议:
1、连续同一个方向拿物品,要有额外开支,这个是超出的,为了节省成本,自然要换方向拿。
2、是否真的换方向就成本更低呢?取决于换方向后拿取的成本与额外开销之间的差值。
你可以先写出代码来,如果有问题,让我帮你修改下还可以。
这两天课太多。。。现在才回补哈意思。
我本来以为动态规划可以做的。。但是贪心就可以了(老师说的,其实我不懂),但是动态规划刚学不久,好多时候分不清或者状态转移方程列不出来,你能给我指导下吗
@尽善尽美#: 对这些理论我也了解不多,可以百度看。
@519740105: 我还是要花些时间理解QAQ,多谢你百忙中来回复。有好多东西想问,交个朋友可好?
@尽善尽美#: 可以啊。68558710