问题 5301 --竞技场角斗

5301: 竞技场角斗

时间限制: 2 Sec  内存限制: 512 MB
提交: 9  解决: 6
[提交][状态][命题人:]

题目描述

与此同时,森林之外,有一个巨大的圆形竞技场,守护者是亚乌菈和马雷。
两位守护者在竞技场上进行着残酷的角斗游戏。

有 n 名角斗士需要依次考虑是否上场。第 i 名角斗士的战斗力为 a[i] ,购买第 i 名角斗士将其排入竞技场需要花费 b[i] 金币。
竞技场规则如下:
 - 战斗力为 x 的角斗士上场后,会获得 c[x] 金币的收益。
 - 如果竞技场上有两名战斗力相同的角斗士,则他们会展开角斗,败者下场,胜者战斗力+1并继续留在场上,同时获得对应新战斗力的收益。如果战斗力提升后出现了新的战斗力相同的两名角斗士,则会继续角斗,直至场上所有角斗士的战斗力两两互不相同。

求选择一个战斗力单调不升的角斗士子序列(可以为空序列),购买这些角斗士并将他们依次排入竞技场,【总收益-总花费】最大是多少。

子序列定义:最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。

输入

第一行包含两个整数 n,m (1≤n,m≤2000) ,表示角斗士数量和初始战斗力的上限。
第二行包含 n 个整数 a[1],a[2],...,a[n] (1≤a[i]≤m),表示每名角斗士的初始战斗力。
第三行包含 n 个整数 b[1],b[2],...,b[n] (0≤b[i]≤5000) ,表示每名角斗士的购买费用。
第四行包含 n+m 个整数 c[1],c[2],...,c[n+m] ,表示每档战斗力所获得的收益。

输出

输出一个整数,表示最大的【总收益-总花费】。
样例输入
Copy
样例1:
5 4
4 3 1 2 1
1 2 1 2 1
1 2 3 4 5 6 7 8 9

样例2:
2 2
1 2
0 0
2 1 -100 -100

样例3:
5 4
4 3 2 1 1
0 2 6 7 4
12 12 12 6 -3 -5 3 10 -4
样例输出
Copy
样例1:
6

样例2:
2

样例3:
62

提示

在样例 1 中,
可以选择第 1,2,3,5 名角斗士,花费 1+2+1+1=5 金币。接下来每轮依次排入角斗士:
 - 战斗力为 4 的角斗士派入场,获得 4 金币。
 - 战斗力为 3 的角斗士派入场,获得 3 金币。
 - 战斗力为 1 的角斗士派入场,获得 1 金币。
 - 战斗力为 1 的角斗士派入场,获得 1 金币。然后两名战斗力为 1 的角斗士展开角斗,其中一名下场,另一名战斗力变为 2 的,获得 2 金币。
共计获得 4+3+1+1+2=11 金币。总利润 11-5=6 金币。

在样例 2 中,
无法同时招募两名角斗士,因为要求战斗力单调不升。因此招募第 2 名角斗士,花费 0 金币,获得 2 金币,总利润 2-0=2 金币。

来源

[提交][状态]