CF2109B.Slice to Survive

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

决斗者 Mouf 和 Fouad 进入了一个 n×mn \times m 的网格竞技场!

Fouad 的怪物初始位于单元格 (a,b)(a, b),其中行编号为 11 到 nn,列编号为 11 到 mm。

Mouf 和 Fouad 将持续决斗,直到网格仅剩一个单元格。

每个回合包含以下操作:

  • Mouf 首先沿某行或列将网格切割成两部分,丢弃不包含 Fouad 怪物的部分。注意网格必须至少有两个单元格,否则游戏已经结束。
  • 之后,在同一回合内,Fouad 将他的怪物移动到剩余网格中的任意单元格(可以保持原位)。

第四个测试案例的可视化图示。

Mouf 希望最小化回合数,而 Fouad 希望最大化回合数。如果双方都采取最优策略,这场史诗级决斗将持续多少回合?

输入格式

每个测试包含多个测试用例。第一行包含测试用例数量 tt(1≤t≤1041 \le t \le 10^4)。接下来是测试用例描述。

每个测试用例的第一行也是唯一一行包含四个整数 nn、mm、aa 和 bb(2≤n,m≤1092 \le n, m \le 10^9,1≤a≤n1 \le a \le n,1≤b≤m1 \le b \le m)——分别表示行数、列数、怪物起始行和起始列。

输出格式

对于每个测试用例,输出一个整数——在双方都采取最优策略时,这场史诗级决斗将持续的回合数。

输入输出样例

  • 输入#1

    8
    2 2 1 1
    3 3 2 2
    2 7 1 4
    2 7 2 2
    8 9 4 6
    9 9 5 5
    2 20 2 11
    22 99 20 70

    输出#1

    2
    4
    4
    3
    6
    8
    6
    10

说明/提示

在第一个测试案例中,一种可能的决斗序列如下:

  • 第 1 回合:Mouf 沿第 1 行和第 2 行之间的水平线切割网格,移除下半部分,留下 1×21 \times 2 的网格。
  • 第 1 回合:Fouad 的怪物位于单元格 (1,1)(1,1)。
  • 第 2 回合:Mouf 再次切割 1×21 \times 2 网格,移除一列,最终隔离出单元格 (1,1)(1,1)。

决斗在 22 回合内完成。

在第四个测试案例中,一种可能的决斗序列如下:

  • 第 1 回合:Mouf 沿第 2 列和第 3 列之间的垂直线切割网格,将其分为 2×22 \times 2 和 2×52 \times 5 两部分,然后移除 2×52 \times 5 部分。
  • 第 1 回合:Fouad 将怪物移动到单元格 (1,1)(1,1)。
  • 此后,决斗过程与第一个测试案例类似——再用两个回合将 2×22 \times 2 网格缩减为 1×11 \times 1 单元格。

总计,决斗在 33 回合内完成。

可以参考题目描述中提到的图片来查看第四个测试案例的图示。

翻译由 DeepSeek V3 完成

输入解题思路,AI测评打分。不知道怎么写?

首页