5048.cats 的重力拼图

时间限制:1s 内存限制:512MB

cats 有一个有 $n$ 行,每行有 $m$ 个方格的重力拼图。其中第 $i$ 行第 $j$ 个方格坐标为 $(i,j)$。重力拼图中有一个物块,初始位于坐标 $(a,b)$ 的方格。若当前物块位于 $(r,c)$,在一次操作中,cats 可以选择以下四种操作之一:

  • 将重力切换为向上:将物块从当前位置移动到 $(1,c)$。这个过程中物块将经过所有坐标为 $(i,c)(1≤i≤r)$ 的方格。
  • 将重力切换为向下:将物块从当前位置移动到 $(n,c)$。这个过程中物块将经过所有坐标为 $(i,c)(r≤i≤n)$ 的方格。
  • 将重力切换为向左:将物块从当前位置移动到 $(r,1)$。这个过程中物块将经过所有坐标为 $(r,i)(1≤i≤c)$ 的方格。
  • 将重力切换为向右:将物块从当前位置移动到 $(r,m)$。这个过程中物块将经过所有坐标为 $(r,i)(c≤i≤m)$ 的方格。

cats 可以最多进行 $142857$ 次操作。现在 cats 希望最大化被拼图块经过至少一次(包括初始位置和最终位置)的方格的总数。你需要告诉 cats 这个总数的最大值。

输入格式(从终端/标准输入读取)

第一行包含一个整数 $T(1≤T≤10^5 )$,表示一共有 $T$ 组测试数据。

每组测试数据包含一行四个整数 $n,m,a,b (1≤n,m≤10^8 ,1≤a≤n,1≤b≤m)$,表示重力拼图的大小和物块的初始位置。

输出格式(输出至终端/标准输出)

对于每组测试数据,输出一个整数,表示被拼图块经过至少一次(包括初始位置和最终位置)的方格的总数的最大值。

输入样例

复制
7
4 1 2 1
1 1 1 1
2 2 2 2
3 3 1 1
4 4 2 3
5 5 3 3
100000000 100000000 100000000 100000000
 \n
 · · · \n
 · · · \n
 · · · \n
 · · · \n
 · · · \n
 · · · \n
         ·         ·         ·         \n

输出样例

复制
4
1
4
8
14
19
399999996
 \n
 \n
 \n
 \n
  \n
  \n
         \n
来源: 2024“钉耙编程”中国大学生算法设计超级联赛(8)

提交题解

Please login first.

© 2025 FAQs