#P12817. 营火
营火
营火
Problem Description
在二维平面上,有 个火种,其中第 个火种的坐标是 ,除了火种之外,还有 个黑点在 轴上方, 个白点在 轴下方,其中黑点和黑点,黑点和火种,白点和白点,白点和火种之间有一些边连接了若干点,但保证黑点和白点之间,火种和火种之间没有任何连边。如果只看黑点和火种,那么保证所有黑点和火种,以及它们之间的边构成一个连通图,白点和火种同样。 小 K 会对这些点施加影响,小 K 会随机选择一个黑点 和一个白点 ,把所有 坐标不小于 的黑点和 坐标不大于 的白点全部删去(当然,连接的边也会消失),现在小 K 想知道有多少种选择黑点和白点的方式,使得所有的火种连通。
Input
第一行一个整数 (),表示数据组数。 对于每组数据: 第一行三个整数 (),表示火种,黑点,白点的数量。 接下来一行两个正整数 (),分别表示黑点与火种构成的连通图的边数,和白点与火种构成的连通图边数。 接下来 行,每行两个整数 (),表示第 个黑点的坐标。 接下来 行,每行两个整数 (),表示第 个白点的坐标。 接下来 行,每行三个正整数 ,描述一条黑点与火种的边:
- 如果 ,则表示有一条连接火种 和黑点 的边();
- 如果 ,则有一条连接黑点 和黑点 的边()。 接下来 行,每行三个正整数 ,描述一条白点与火种的边:
- 如果 ,则表示有一条连接火种 和白点 的边();
- 如果 ,则有一条连接白点 和白点 的边()。 保证所有黑白点的坐标 。 保证所有数据的 之和, 之和, 之和都不超过 ,所有数据的 之和, 之和都不超过 。
Output
对于每组数据,输出一个整数表示选择不同的黑点和白点,使得火种连通的方案数。
Sample Input
2
2 1 2
2 3
1 1
1 -1
1 -2
1 1 1
1 2 1
1 1 1
1 2 1
2 1 2
3 3 4
12 11
-3 9
-8 1
1 5
-3 -8
-5 -10
-5 -1
1 -7
2 2 1
2 3 2
1 1 2
1 2 1
1 3 2
2 2 1
1 1 3
2 2 3
2 2 3
2 2 3
2 3 2
1 2 1
2 2 1
2 3 2
2 4 3
1 1 2
1 2 3
1 3 2
2 4 2
1 3 4
1 2 2
1 3 2
1 2 1
Sample Output
1
4
Source
2025“钉耙编程”中国大学生算法设计暑期联赛(5)