#P17467. [ICPC 2018 Jiaozuo R] Ultraman vs. Aodzilla and Bodzilla
[ICPC 2018 Jiaozuo R] Ultraman vs. Aodzilla and Bodzilla
题目描述
六个月前,我们的英雄(曾用名 Huriyyah)击败了这片土地上的所有怪物。如今他更名为 Ultraman,离开了心爱的故土,准备迎接一项新的挑战。
在一片遥远的土地上,当地居民正遭受着两只强大而可怕的怪物——Aodzilla 与 Bodzilla——的侵扰。它们吞食独自外出的孩童,甚至残杀无辜之人。数十年来,人们始终笼罩在被袭击的恐惧之中。
为了拯救这些不幸的百姓,Ultraman 动身前往作为 Aodzilla 与 Bodzilla 主要巢穴的森林。在森林中,他直面这两只凶猛残暴的怪物,并与之搏斗。Aodzilla 和 Bodzilla 的生命值分别为 与 ,它们的攻击力分别为 与 。
他们在洞穴中进行回合制战斗。每一秒内,Ultraman 会先受到怪物的攻击,所受伤害为此时所有存活怪物的攻击力之和。随后他必须选择恰好一只仍然存活的怪物并攻击它。被选中的怪物将受到数值为 的伤害(即其生命值减少 ),其中 表示 Ultraman 自开始到当前时刻已经向这两只怪物发动的攻击总次数(且当前攻击为第 次)。换言之,在第 秒,两只怪物中的一只将受到伤害值为 的攻击;在第 秒,其中的一只(若仍存活)将受到伤害值为 的攻击;在第 秒,其中的一只(若仍存活)将受到伤害值为 的攻击,以此类推。若在某一时刻,某只怪物的生命值小于或等于零,该怪物将立即死亡。当两只怪物均被击杀时,Ultraman 获胜。
现在,你需要制定一个策略,使得 Ultraman 在获胜前所承受的总伤害最小。策略可以描述为一个字符串,其长度等于战斗持续的总时间。字符串的第 个字符为 'A' 表示 Ultraman 在第 秒选择攻击 Aodzilla;否则第 个字符为 'B',表示该秒的攻击目标是 Bodzilla。你还需要在所有可能的最优策略中,找出字符串描述的字典序最小的那个策略。
对于两个不同的字符串 与 ,若其中一个字符串是另一个的前缀,则较短者在字典序上更小。在其他情况下, 在字典序上小于 当且仅当 的第一个字符小于 的第一个字符,或它们相同时 的第二个字符小于 的第二个字符,以此类推。 在字典序上小于 的情形可类似定义。
输入格式
输入包含多组测试数据,第一行包含一个正整数 ,表示测试数据的组数,最多可达 。
对于每组测试数据,仅有一行包含四个整数 、、 和 ,满足 。
我们保证至多只有 组测试数据满足 。
输出格式
对于每组测试数据,输出一行,包含一个整数表示 Ultraman 需要承受的最小总伤害,以及一个描述最优策略的字符串,且该字符串在所有可能的最优策略中字典序最小。你应在数字与字符串之间恰好输出一个空格。
2
5 15 5 25
5 15 25 5
155 BBBBBA
105 AAABBB
提示
翻译由 DeepSeek V4 Pro 完成