6130: BZOJ2130:魔塔
Description
魔塔是一款很流行的益智类小游戏。在游戏中,你可以控制主人公在魔塔中移动,走到怪兽面前便可以和怪兽来决斗,打败怪兽后可以得到金钱,并可以通过金钱来提高自己的攻击力、防御力、血量,从而变得更强大。然而,即便你拥有再高的攻击力、防御力,可以天下无敌,但一扇小小的门就可以阻止你无法前进。在游戏中,有红、黄、蓝三种颜色的门,并对应有红、黄、蓝三种颜色的钥匙。如果你想通过一扇门,需要消耗一把对应颜色的钥匙打开这扇门,如果你没有这种颜色的钥匙,便不能通过。现在你得到一款加强版的魔塔游戏:首先,门和钥匙的颜色不再是3种,而是n种,定为1~n号颜色。对于i号颜色的钥匙你有Ki把。并且之后你不会以任何形式得到任何颜色的钥匙。在你面前有三座n层的魔塔A、B、C。每座魔塔的入口处和相邻两层之间都会有一扇门。对于每座魔塔,恰好有n扇门,并且这n扇门的颜色恰好各不相同。其中,A魔塔中通往第i层的门颜色为DoorAi。(DoorBi、DoorCi的定义与DoorAi类似)在每座魔塔的每一层都有一定数量的怪兽,但这些怪兽根本打不过强大的你,你可以不费一滴血就秒杀这些怪兽,并得到杀死他们的金钱。我们已经为你统计好,消灭A魔塔第j层中所有的怪兽,可以得到的金钱数为GoldAi。(GoldBi、GoldCi的定义与GoldAi类似)现在,就请你来决策,如何运用这些钥匙,能得到最多的金钱,并告诉我们最多能获得多少金钱。
输入格式
第一行一个字符(A~F),表示数据类型(在下面数据规模中有详细介绍)第二行一个整数m,表示有几组测试数据。之后给出m组数据,对于每组数据有九行: 第一行一个整数n,表示魔塔层数。第二行一个数列Ki。第三行至第五行,每行一个数列,分别为DoorA、DoorB、DoorC。第六行至第八行,每行一个数列,分别为GoldA、GoldB、GoldC。第九行为一个空行。
输出格式
输出应包含m行,每行一个正整数,为最大能获得的金钱数。
样例输入
A 2 5 1 2 1 1 2 1 2 3 4 5 2 4 3 5 1 5 4 3 2 1 1 1 1 1 5 1 2 2 3 3 1 2 1 1 1 5 1 2 1 1 2 1 2 3 4 5 2 4 3 5 1 5 4 3 2 1 1 1 1 1 50 1 2 2 3 3 1 2 1 1 1
样例输出
12 56 【样例说明】 对于第一个数据: 1 2 3 4 5 第一个魔塔不用钥匙,能得到0金钱; 2 4 3 5 1) 第二个魔塔用1、2、3、4、5号钥匙,得到11金钱; 5)4 3 2 1 第三个魔塔用5号钥匙,得到1金钱; 最多可得到12金钱。 对于第二个数据: 1 2 3 4 5) 第一个魔塔用1、2、3、4、5号钥匙,能得到54金钱; 2)4 3 5 1 第二个魔塔用2号钥匙,得到1金钱; 5)4 3 2 1 第三个魔塔用5号钥匙,得到1金钱; 最多可得到56金钱。 【数据规模】 对于全部数据,满足: 1<=m<=10; 1<=n<=100000; 1<=Ki<=2; 0<= GoldAi、 GoldBi、 GoldCi <=2000; DoorA、DoorB、DoorC为三个1到n的排列。 数据共分为六类:A、B、C、D、E、F,他们分别有各自的特征: A类数据占10%,保证n<=100。 B类数据占10%,保证n<=1000。 C类数据占10%,保证GoldCi=0,即第三座塔中没有任何金钱。 D类数据占20%,保证Ki=1,即每种钥匙你都只有一把。 E类数据占30%,保证DoorA、DoorB、DoorC三个1到n的排列为随机产生的数列。 F类数据占20%,没有其他特征。
提示
没有写明提示
题目来源
没有写明来源