#P17649. [IO 2025 #1] 骷髅、骨头、墓地、头骨
[IO 2025 #1] 骷髅、骨头、墓地、头骨
题目描述
法鲁姆(Farloom)是一个遍布丝线小径的王国。每条小径都是连接两个村庄的一根绷紧的直丝线。狡猾的反派“头骨暴君”打算沿竖直方向挥击这张由小径组成的网。
把王国看成一张图:顶点是村庄,第 个村庄在平面上的坐标为 ;边是连接村庄的丝线小径。表示道路的线段可以在村庄之外相交,但不能在这些交点处从一条道路转到另一条道路。
王国居民猜测了 个暴君可能攻击的位置。如果暴君沿横坐标为 的竖直直线攻击,将删除:
- 所有满足 的村庄;
- 所有连接村庄 且满足 的道路。
请帮助居民,对每个可能的攻击位置,求攻击后王国中剩余的连通分量数。所有询问相互独立:回答当前询问时,不需要考虑之前的攻击。
图的连通分量是一个顶点集合,集合中的任意顶点都可以沿边到达集合内的其他任意顶点,但不能沿边到达集合之外的顶点。
输入格式
每个测试包含多组数据。第一行包含整数 ,表示数据组数,满足 。接下来依次描述每组数据。
每组数据的第一行包含三个整数 ,分别表示村庄数、道路数和可能的攻击位置数,满足 ,,。
第二行包含 个整数 ,表示各村庄的横坐标。第三行包含 个整数 ,表示各村庄的纵坐标。坐标范围为 。
接下来 行,每行包含两个整数 ,表示道路连接的两个村庄编号,满足 ,且 。
最后一行包含 个整数,表示各个可能攻击位置的横坐标,每个数的绝对值都不超过 。
保证同一组数据中,没有两个村庄的坐标相同。保证所有数据组的 之和、 之和、 之和分别都不超过 。
输出格式
对每组数据,输出一行 个整数,分别表示各询问的答案。
注意,各询问相互独立。
2
9 9 6
0 0 0 1 1 2 2 2 3
0 2 -2 1 -1 0 2 -2 0
1 4
1 5
2 4
3 5
4 6
4 7
5 6
5 8
6 9
-1 0 1 2 3 10
5 3 4
-1 0 1 3 3
0 0 0 1 -1
1 2
2 3
4 5
0 1 2 3
1 1 6 2 1 1
3 2 2 1
提示
样例中的图如下所示:
:::align{center}
:::