题目描述(ID:12270)
标题: 魔法塔防
标签: 搜索 模拟 深度优先搜索
详情:
塔防游戏(Tower Defence)是dd_engi非常喜爱的一类休闲游戏。在这类游戏中,玩家需要在地图上摆放各种防御单位,打击并阻止试图跨越地图的敌对单位。一般而言,敌对单位不会攻击防御单位,但若敌对单位未被防御单位消灭且成功跨越地图,玩家的生命数会减少。
dd_engi设计出了一种一维的塔防游戏,并将其命名为“魔法塔防”,规则如下:
游戏的地图是一行N个连续的魔法塔,其中行的一端是入口,另一端是出口,怪兽会从地图的一端向另一端移动。初始时,怪兽通过每个魔法塔的时间是T秒。玩家可以在这N个魔法塔中放置魔法师以对经过的怪兽造成伤害,每个魔法塔中最多放置一个魔法师,且放置好的魔法师不能改变位置。
共有三种不同属性的魔法师,分别是红色魔法师、蓝色魔法师和绿色魔法师,作用分别是攻击、减速以及下毒。当怪兽经过一个红色魔法师所在的魔法塔时,每秒钟生命值会减少R点;当怪兽从一个蓝色魔法师所在的魔法塔走出之后,通过每个魔法塔的时间延长B秒;当怪兽从一个绿色魔法师所在的魔法塔走出之后,每秒钟会因中毒失去G点生命值。蓝色魔法师的减速效果和绿色魔法师的下毒效果是可以累加的。也就是说,怪兽通过n个蓝色魔法师所在的魔法塔之后,它通过每个魔法塔的时间会变成T+B*n秒;怪兽通过n个绿色魔法师所在的魔法塔之后,它每秒钟会因中毒失去G*n点生命值。
现在,你的任务是,在这N个魔法塔里放置各种类型的魔法师,使通过的怪兽失去的生命值最大。输出这个最大值。
输入格式:
一行,五个空格隔开的整数N、R、G、B、T。
输出格式:
只需输出一行一个整数,即通过的怪兽失去的最大的生命值。
限制: 20%的数据满足N<=12。
50%的数据满足N<=100。
100%的数据满足1<=N<=1024; 0 <= R, G, B <= 65536; 0 <= T <= 3。
样例:

输入

5 4 3 2 1

输出

82
登录并解答