CF2148B.Lasers

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Lasers

题目描述

在一个二维坐标平面上,坐标范围为 $$(0,0)$$ 到 $$(x, y)$$。你位于 $$(0,0)$$,目标是到达 $$(x, y)$$。

但是,平面上有 nn 条水平激光,第 ii 条激光从 $$(0, a_i)$$ 到 $$(x, a_i)$$,还存在 mm 条竖直激光,第 ii 条激光从 $$(b_i, 0)$$ 到 $$(b_i, y)$$。

你可以沿任意方向移动以到达 $$(x, y)$$,但你的运动轨迹必须是平面内的一条连续曲线。每当你穿越一条水平或一条竖直激光,计为一次穿越。特别地,如果你经过两条激光的交点,则计为两次穿越。

例如,若 x=y=2x = y = 2,n=m=1n = m = 1,a=[1]a = [1],b=[1]b = [1],运动方式如下所示:

问最少需要穿越多少次激光才能到达 $$(x, y)$$。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例数量。

每组测试数据的第一行包含四个整数 nn、mm、xx 和 yy($1 \leq n, m \leq 2 \times 10^5,\ 2 \leq x ,y \leq 10^9$)。

接下来一行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0<ai<y0 < a_i < y),表示所有水平激光的 yy 坐标。保证对于所有 i>1i > 1,有 ai>ai−1a_i > a_{i-1}。

接下来一行包含 mm 个整数 b1,b2,…,bmb_1, b_2, \ldots, b_m(0<bi<x0 < b_i < x),表示所有竖直激光的 xx 坐标。保证对于所有 i>1i > 1,有 bi>bi−1b_i > b_{i-1}。

保证所有测试用例的 nn 和 mm 之和不超过 2×1052 \times 10^5。

输出格式

对于每组测试数据,输出到达 $$(x, y)$$ 所需穿越激光的最小次数。

说明/提示

由 ChatGPT 5 翻译

样例

2
1 1 2 2
1
1
2 1 100000 100000
42 58
32
2
3

在线编程 IDE

建议全屏模式获得最佳体验