1 条题解

  • 0
    @ 2026-3-30 21:15:42

    题目分析

    本题是一个双人博弈问题,双方各自拥有本体生命值和骑士生命值。游戏按回合交替进行,奇数回合由水母的骑士行动,偶数回合由花花的骑士行动。每个骑士在回合中可以选择攻击对方本体或对方骑士,攻击使目标生命值减少 11。当一方本体生命值 0\le 0 时,该方立即失败;当一方骑士生命值 0\le 0 时,该骑士死亡,无法再进行攻击。

    关键观察

    1. 失败条件:一方失败有两种情况:

      • 本体生命值归零
      • 骑士死亡(因为骑士死亡后,对方可以在自己的回合直接攻击本体,最终导致本体死亡)
    2. 本质等价性:由于骑士死亡后相当于失去攻击能力,对方可以无压力地攻击本体,所以本体和骑士的生存是同等重要的。游戏实际上变成了:谁的本体和骑士中生命值较低的那个先被对方打到 00,谁就输。

    3. 最优策略:双方都会优先攻击对方生命值较低的目标(本体或骑士),因为这样可以更快地使对方失去战斗能力。

    策略推导

    设:

    • 水母的最小生命值:min(a,c)\min(a, c)
    • 花花的最小生命值:min(b,d)\min(b, d)

    为什么比较最小值?

    • 如果水母攻击,她可以选择攻击花花本体 bb 或花花骑士 dd,目标是尽快使 min(b,d)\min(b, d) 变为 00
    • 如果花花攻击,她可以选择攻击水母本体 aa 或水母骑士 cc,目标是尽快使 min(a,c)\min(a, c) 变为 00

    由于双方都采取最优策略,且水母先手,游戏的结果取决于谁能更快地击破对方的最小生命值目标。

    胜负判定

    • 如果 min(a,c)min(b,d)\min(a, c) \ge \min(b, d),水母获胜
    • 否则,花花获胜

    原因

    • min(a,c)min(b,d)\min(a, c) \ge \min(b, d) 时,水母可以在花花击破自己的最小生命值之前,先击破花花的最小生命值,从而获胜
    • min(a,c)<min(b,d)\min(a, c) < \min(b, d) 时,花花可以在水母击破自己的最小生命值之前,先击破水母的最小生命值,从而获胜

    复杂度分析

    • 时间复杂度:O(1)O(1) 每个测试用例
    • 空间复杂度:O(1)O(1) 每个测试用例

    代码实现

    #include<bits/stdc++.h>
    using namespace std;
    
    inline void solve(){
        int a = 0, b = 0, c = 0, d = 0;
        scanf("%d %d %d %d", &a, &b, &c, &d);
        if(min(a, c) >= min(b, d)) 
            printf("Gellyfish\n");
        else 
            printf("Flower\n");
    }
    
    int main(){
        int T = 0;
        scanf("%d", &T);
        for(int i = 0 ; i < T ; i ++) 
            solve();
        return 0;
    }
    

    示例验证

    以第一个测试用例 a=1,b=2,c=3,d=4a=1, b=2, c=3, d=4 为例:

    • min(a,c)=min(1,3)=1\min(a, c) = \min(1, 3) = 1
    • min(b,d)=min(2,4)=2\min(b, d) = \min(2, 4) = 2
    • 由于 1<21 < 2,花花获胜,与输出一致

    第二个测试用例 a=100,b=999,c=1,d=1a=100, b=999, c=1, d=1

    • min(a,c)=min(100,1)=1\min(a, c) = \min(100, 1) = 1
    • min(b,d)=min(999,1)=1\min(b, d) = \min(999, 1) = 1
    • 由于 111 \ge 1,水母获胜,与输出一致
    • 1

    信息

    ID
    6174
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    7
    已通过
    1
    上传者