AT_1_ttpc2024_1_f.Origami Warp

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

在 xyxy 平面上,给定 NN 条直线。第 ii 条直线 (1≤i≤N)(1 \le i \le N) 通过两个不同的点 (ai,bi)(a_i, b_i) 和 (ci,di)(c_i, d_i)。特别地,11 号直线和 22 号直线分别表示 xx 轴和 yy 轴,即 (a1,b1,c1,d1)=(0,0,1,0)(a_1, b_1, c_1, d_1) = (0, 0, 1, 0) 和 (a2,b2,c2,d2)=(0,0,0,1)(a_2, b_2, c_2, d_2) = (0, 0, 0, 1)。

Alice 站在 xyxy 平面上的某个位置,她可以反复进行以下操作:

她可以选择任意一条直线,并移动到当前点关于该直线的对称位置。

对于点 SS 是否能“到达”点 PP,我们这样定义:

对于任意实数 ε>0\varepsilon > 0,都存在一个点 QQ,使得 QQ 与 PP 的欧几里得距离不超过 ε\varepsilon,并且 Alice 能从 SS 通过有限次操作移动到 QQ。

现在,你需要回答 QQ 个查询。对于第 ii 个查询 (1≤i≤Q)(1 \le i \le Q),给出整数 Xi,Yi,Zi,WiX_i, Y_i, Z_i, W_i,判断是否能从 (Xi,Yi)(X_i, Y_i) 到达 (Zi,Wi)(Z_i, W_i),如果可以,输出 Yes,否则输出 No。

需要解决 TT 组测试用例。

输入格式

输入由以下形式给出:

T
case_1
case_2
...
case_T

其中,casei\text{case}_i 代表第 ii 个测试用例。每个测试用例格式如下:

N
a_1 b_1 c_1 d_1
a_2 b_2 c_2 d_2
...
a_N b_N c_N d_N
Q
X_1 Y_1 Z_1 W_1
X_2 Y_2 Z_2 W_2
...
X_Q Y_Q Z_Q W_Q

输出格式

对于每个测试用例,输出 QQ 行。每行输出相应查询的结果,即 Yes 或 No。注意,输出时不区分大小写。

输入输出样例

  • 输入#1

    2
    3
    0 0 1 0
    0 0 0 1
    0 2 2 0
    4
    1 0 2 3
    1 -2 -1 2
    1 1 -1 0
    3 3 3 3
    3
    0 0 1 0
    0 0 0 1
    -2 1 2 3
    2
    2 1 -1 5
    -1 -1 3 3

    输出#1

    Yes
    Yes
    No
    Yes
    Yes
    Yes

说明/提示

  • 所有输入均为整数。
  • 1≤T≤1001 \le T \le 100,表示测试用例数量。
  • 对于每个测试用例:
    • 2≤N≤20002 \le N \le 2000,表示直线的数量。
    • 1≤Q≤20001 \le Q \le 2000,表示查询的数量。
    • −108≤ai,bi,ci,di≤108 (1≤i≤N)-10^8 \le a_i, b_i, c_i, d_i \le 10^8 \ (1 \le i \le N)
    • (ai,bi)≠(ci,di)(a_i, b_i) \ne (c_i, d_i),确保每条直线不同。
    • 特别地,$ (a_1, b_1, c_1, d_1) = (0, 0, 1, 0) $ 和 $ (a_2, b_2, c_2, d_2) = (0, 0, 0, 1) $。
    • −108≤Xi,Yi,Zi,Wi≤108 (1≤i≤Q)-10^8 \le X_i, Y_i, Z_i, W_i \le 10^8 \ (1 \le i \le Q)。

对于实例来说:

  • 在第一个测试用例的第一个查询中,可以通过使用第 22 条直线和第 33 条直线,移动从 (1,0)(1, 0) 到达 (−1,0)(-1, 0) 再到 (2,3)(2, 3),所以 (1,0)(1, 0) 可以归到 (2,3)(2, 3)。
  • 第四个查询说明,如果 (Xi,Yi)=(Zi,Wi)(X_i, Y_i) = (Z_i, W_i),则该点总是可以到达自己的。

在第二个测试用例中:

  • 第一个查询可以使用第 11 和第 33 条直线,变换路径为 (2,1)→(2,−1)→(−65,275)(2, 1) \rightarrow (2, -1) \rightarrow \left(-\frac{6}{5}, \frac{27}{5}\right)。由于 (−1,5)(-1, 5) 和 (−65,275)\left(-\frac{6}{5}, \frac{27}{5}\right) 的距离是 15\frac{1}{\sqrt{5}},对于任何 ε≥15\varepsilon \ge \frac{1}{\sqrt{5}},都可以视为到达。所以 (2,1)(2, 1) 能到达 (−1,5)(-1, 5)。

本翻译由 AI 自动生成

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

首页