AT_1_ttpc2024_1_f.Origami Warp
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 xy 平面上,给定 N 条直线。第 i 条直线 (1≤i≤N) 通过两个不同的点 (ai,bi) 和 (ci,di)。特别地,1 号直线和 2 号直线分别表示 x 轴和 y 轴,即 (a1,b1,c1,d1)=(0,0,1,0) 和 (a2,b2,c2,d2)=(0,0,0,1)。
Alice 站在 xy 平面上的某个位置,她可以反复进行以下操作:
她可以选择任意一条直线,并移动到当前点关于该直线的对称位置。
对于点 S 是否能“到达”点 P,我们这样定义:
对于任意实数 ε>0,都存在一个点 Q,使得 Q 与 P 的欧几里得距离不超过 ε,并且 Alice 能从 S 通过有限次操作移动到 Q。
现在,你需要回答 Q 个查询。对于第 i 个查询 (1≤i≤Q),给出整数 Xi,Yi,Zi,Wi,判断是否能从 (Xi,Yi) 到达 (Zi,Wi),如果可以,输出 Yes,否则输出 No。
需要解决 T 组测试用例。
输入格式
输入由以下形式给出:
T
case_1
case_2
...
case_T
其中,casei 代表第 i 个测试用例。每个测试用例格式如下:
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
输出格式
对于每个测试用例,输出 Q 行。每行输出相应查询的结果,即 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≤100,表示测试用例数量。
- 对于每个测试用例:
- 2≤N≤2000,表示直线的数量。
- 1≤Q≤2000,表示查询的数量。
- −108≤ai,bi,ci,di≤108 (1≤i≤N)
- (ai,bi)=(ci,di),确保每条直线不同。
- 特别地,$ (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)。
对于实例来说:
- 在第一个测试用例的第一个查询中,可以通过使用第 2 条直线和第 3 条直线,移动从 (1,0) 到达 (−1,0) 再到 (2,3),所以 (1,0) 可以归到 (2,3)。
- 第四个查询说明,如果 (Xi,Yi)=(Zi,Wi),则该点总是可以到达自己的。
在第二个测试用例中:
- 第一个查询可以使用第 1 和第 3 条直线,变换路径为 (2,1)→(2,−1)→(−56,527)。由于 (−1,5) 和 (−56,527) 的距离是 51,对于任何 ε≥51,都可以视为到达。所以 (2,1) 能到达 (−1,5)。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?