#P15060. [2026省选联测]平面划分
[2026省选联测]平面划分
题目描述
在一个无限大的二维平面上,有 个点 和 条边 ,保证任意两点连通,即构成一棵无根树。我们称满足没有两个点重合、三个点共线、两条边相交的树为“平面树”。保证这棵树为平面树。
当这棵树的所有叶子(度数 的顶点)都在凸包的边界上,且凸包边界上的所有顶点都是叶子,我们称它为“凸包树”。一个凸包树的例子如下(点 位于凸包上,树的叶子顶点为 ):
【图片】
我们称顶点集合 为树的子树,当且仅当对于 中的任意一对顶点,存在一条仅包含 中顶点的路径。易得平面树的任意子树也是平面树。
给定一棵有 个顶点的平面树。我们将集合 的一个划分称为好的划分,若它被划分为若干不相交非空子集 ,且所有 的并为 ,并且对于所有 ,子树 都是“凸包树”。若存在某个集合只出现在一个划分中,则两个划分不同。
请计算好的划分的数量。由于答案可能很大,请输出对 取模的结果。
输入格式
第一行一个整数 。
接下来 行,每行两个整数 ,表示顶点 的坐标。
接下来 行,每行包含两个整数 ,表示树中的一条边 。
输出格式
输出一个整数,表示给定平面树的顶点的好的划分数量,对 取模。
样例 1 输入
4
0 0
0 1
-1 -1
1 -1
1 2
1 3
1 4
样例 1 输出
5
样例 2 输入
5
3 2
0 -3
-5 -3
5 -5
4 5
4 2
4 1
5 2
2 3
样例 2 输出
8
样例 3 输入
6
4 -5
0 1
-2 8
3 -10
0 -1
-4 -5
2 5
3 2
1 2
4 6
4 2
样例 3 输出
13
样例 4 输入
8
0 0
-1 2
-2 5
-5 1
1 3
0 3
2 4
-1 -4
1 2
3 2
5 6
4 2
1 5
5 7
5 8
样例 4 输出
36
数据范围
本题使用子任务(Subtask)计分。你需要通过一个子任务内所有测试数据才可以获得相应的得分。
对于所有测试数据,保证:
- ;
- ;
- 。
| 子任务编号 | 特殊性质 | 分值 | |
|---|---|---|---|
| C | |||
| ^ | |||
| 无 | |||
| ^ | |||
| A | |||
| ^ | B | ||
| 无 |
特殊性质 A:保证 。
特殊性质 B:保证 。
特殊性质 C:保证 。