#P2178. Heroes Of Might And Magic

Heroes Of Might And Magic

题目描述

在著名游戏《魔法门之英雄无敌》的新版本中,英雄本人将直接参与战斗。更重要的是,英雄可以单独击败某些怪物,无需任何军队支援。在本题中,你需要开发一个程序,为一个法师英雄与一群怪物正面战斗寻找策略。 每个英雄初始拥有 HPH 点生命值和 MPH 点魔法值。英雄可以使用不同的法术,已知该英雄会三种法术:闪电术(Lighting Bolt)、传送术(Teleport)和治疗术(Heal)。每个法术消耗 1 点魔法值。 每个怪物拥有 HPM 点生命值。一群怪物被视为一个整体,因此若初始有 NM 只怪物,它们的总生命值为 NM × HPM。战斗过程中,怪物的总生命值会减少。若怪物剩余 H 点生命值,则怪物数量为 ⌈H / HPM⌉(⌈⌉ 表示向上取整函数)。 战斗在一维战场进行,战场共有 N + 1 个方格,编号从 0 开始。英雄位于 0 号方格,不会移动。怪物初始位于 N 号方格,并可以移动。怪物每回合最多移动 V 格。 战斗由回合制进行:首先是英雄行动,然后是怪物行动,交替进行。怪物的策略很简单:在其回合开始时,向英雄方向移动 min(V, P - 1) 格(其中 P 是怪物当前所在方格编号)。若怪物移动后位于 1 号方格,则会攻击英雄。若此时怪物剩余 K 只,英雄的生命值将减少 K 点。若英雄生命值≤0,则英雄战败。 英雄的每个回合必须选择施放一个法术: 闪电术(L):对怪物造成 LP 点伤害,其中 P 是怪物当前所在方格编号。 传送术(T x):将怪物传送至任意指定方格 x(x ∈ [1, N],不能是英雄所在的 0 号方格)。 治疗术(H):为英雄恢复 dH 点生命值,英雄生命值不会超过初始最大值 HPH。 若英雄魔法值为 0 且怪物尚未全部消灭,则英雄战败。 请找出能让英雄击败怪物的策略。当怪物总生命值≤0 时,视为击败怪物。 输入格式 第一行包含以下用空格分隔的正整数: N, HPH, MPH, HPM, NM, V, dH (1 ≤ N ≤ 10,2 ≤ HPH ≤ 100,1 ≤ MPH ≤ 50,1 ≤ HPM ≤ 10,1 ≤ NM ≤ 10,1 ≤ V ≤ N,1 ≤ dH < HPH) 第二行包含 N 个整数 L1, L2, ..., LN(1 ≤ LP ≤ 10,用空格分隔),表示怪物在位置 P 时闪电术的伤害值。 输出格式 若英雄无法获胜,输出第一行 DEFEATED。 否则,输出第一行 VICTORIOUS,之后每行依次输出英雄的行动序列(每个回合对应一行): L:施放闪电术 T x:施放传送术(x 为目标方格编号,1 ≤ x ≤ N) H:施放治疗术

示例输入输出

输入数据 1

1 6 5 1 4 1 3
1

输出数据

VICTORIOUS
L
L
H
L
L