#P15560. [CCPC 2025 哈尔滨站] 六边形翻转

[CCPC 2025 哈尔滨站] 六边形翻转

题目描述

给出两个无限大六边形网格图,其中有些格点为黑色,有些格点为白色,如下图所示。

:::align{center} :::

我们用一个三维坐标 (x,y,z) (x,y,zZ,x+y+z=0)(x,y,z)\ (x,y,z\in\mathbb{Z},x+y+z=0) 来描述该网格图中的每个格点,具体如下图所示。

:::align{center} :::

我们可以进行如下图所示的翻转操作,每次选择一个三维坐标 (x,y,z) (x,y,zZ,x+y+z=0)(x,y,z)\ (x,y,z\in\mathbb{Z},x+y+z=0) ,将该坐标周围一圈的格点进行颜色翻转(黑色翻转为白色,白色翻转为黑色),即对格点 (x,y1,z+1)(x,y-1,z+1)(x+1,y1,z)(x+1,y-1,z)(x+1,y,z1)(x+1,y,z-1)(x,y+1,z1)(x,y+1,z-1)(x1,y+1,z)(x-1,y+1,z)(x1,y,z+1)(x-1,y,z+1) 进行颜色翻转。

:::align{center} :::

问能否对第一个六边形网格进行若干次翻转操作,使其每个格点上的颜色均与第二个六边形网格相同。

输入格式

输入第一行包含一个整数 TT (1T1001 \le T \le 100) ,表示测试数据的组数。

接下来依次输入每组测试数据,对于每组测试数据:

输入第一行包含两个整数 n,mn,m (0n,m1050 \le n, m \le 10^5) ,分别表示两个六边形网格图上黑色格点的数量。

接下来 nn 行第 ii 行输入三个整数 xi,yi,zix_i,y_i,z_i ($-10^9 \le x_i, y_i, w_i \le 10^9, x_i + y_i + z_i = 0$),表示第一个六边形网格图上第 ii 个黑点的坐标。

接下来 mm 行第 ii 行输入三个整数 ui,vi,wiu_i,v_i,w_i (109ui,vi,wi109,ui+vi+wi=0-10^9 \le u_i,v_i,w_i \le 10^9, u_i+v_i+w_i = 0),表示第二个六边形网格图上第 ii 个黑点的坐标。

保证所有测试数据的 n2×105,m2×105\sum n\le 2 \times 10^5,\sum m\le 2 \times 10^5

输出格式

对于每组测试数据,输出 YES 如果第一个六边形网格可以进行若干次翻转操作,使其每个格点上的颜色均与第二个六边形网格相同,否则输出 NO 。你可以以任意形式输出答案(大写或小写),比如 yEsyesYesYES 都会被认为是肯定的答案。

1
9 7
0 2 -2
-2 2 0
0 1 -1
2 0 -2
-1 0 1
2 -2 0
0 -2 2
0 0 0
-2 1 1
-1 1 0
1 1 -2
2 0 -2
2 -1 -1
0 -1 1
0 -2 2
1 -2 1
YES
2
5 3
0 0 0
-1 1 0
-1 0 1
0 -1 1
1 0 -1
0 0 0
0 1 -1
1 -1 0
4 3
-1 1 0
-1 0 1
0 -1 1
1 0 -1
0 0 0
0 1 -1
1 -1 0
YES
NO

提示

样例 11 给出的两个格点图即顶部图片的两个格点图。