#P4037. [JSOI2008] 魔兽地图

    ID: 4752 远端评测题 3000ms 125MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2008各省省选江苏O2优化枚举背包 DP

[JSOI2008] 魔兽地图

题目背景

本题疑似错题,不保证存在算法能通过该数据范围下的所有数据。目前所有题解的复杂度都是错误的,且绝大部分能被 https://www.luogu.com.cn/discuss/1112812 中的 Hack 卡掉。

题目描述

DotR (Defense of the Robots) Allstars 是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图 DotA (Defense of the Ancients) Allstars。

DotR 里面的英雄只有一个属性——力量。他们需要购买装备来提升自己的力量值,每件装备都可以使佩戴它的英雄的力量值提高固定的点数,所以英雄的力量值等于它购买的所有装备的力量值之和。装备分为基本装备和高级装备两种。基本装备可以直接从商店里面用金币购买,而高级装备需要用基本装备或者较低级的高级装备来合成,合成不需要附加的金币。装备的合成路线可以用一棵树来表示。

比如,Sange and Yasha 的合成需要 Sange,Yasha 和 Sange and Yasha Recipe Scroll 三样物品。其中 Sange 又要用 Ogre Axe,Belt of Giant Strength 和 Sange Recipe Scroll 合成。每件基本装备都有数量限制,这限制了你不能无限制地合成某些性价比很高的装备。

现在,英雄 Spectre 有 MM 个金币,他想用这些钱购买装备使自己的力量值尽量高。你能帮帮他吗?他会教你魔法 Haunt(幽灵附体)作为回报的。

输入格式

第一行包含两个整数,N(1N51)N(1\le N\le 51)M(0M2000)M(0\le M\le 2000)。分别表示装备的种类数和金币数。装备用 11NN 的整数编号。

接下来的 NN 行,按照装备 11 到装备 NN 的顺序,每行描述一种装备。

每一行的第一个非负整数表示这个装备贡献的力量值。

接下来的非空字符表示这种装备是基本装备还是高级装备,A 表示高级装备,B 表示基本装备。如果是基本装备,紧接着的两个正整数分别表示它的单价(单位为金币)和数量限制(不超过 100100)。如果是高级装备,后面紧跟着一个正整数 CC,表示这个高级装备需要 CC 种低级装备。后面的 2C2C 个数,依次描述某个低级装备的种类和需要的个数。

输出格式

第一行包含一个整数 SS,表示最多可以提升多少点力量值。

10 59
5 A 3 6 1 9 2 10 1
1 B 5 3
1 B 4 3
1 B 2 3
8 A 3 2 1 3 1 7 1
1 B 5 3
5 B 3 3
15 A 3 1 1 5 1 4 1
1 B 3 5
1 B 4 3
33