#iroha2019day4g. [iroha2019_day4_g]真実の魔法陣
[iroha2019_day4_g]真実の魔法陣
故事背景
「这是……?」我们到达的地方看到的是一个像魔法阵一样的东西。它模糊不清,有着一些缺口,明显地不完整。
以前的我可能会在不修复它的情况下回去。但现在─── 我想知道"真相"。
问题描述
在你面前画着一个巨大的圆。你需要使用这个圆来完成魔法阵。
魔法阵是由 个点等间距地分布在圆周上,并且被划分成 对线段的形状。
圆周上有 个点等间距地排列,并以某个点为基准,顺时针从 到 编号。
在你面前的 个点中,一些点已经确定了配对关系并通过线段连接起来,而其他点则没有确定配对关系。你需要确定这些配对的方式,以完成魔法阵。
当魔法阵的复杂度被定义为"圆内相交的线段对数"时,你希望尽量减小最终魔法阵的复杂度。
请计算出能够使魔法阵复杂度最小化的配对方式有多少种,并求出其对 取余的结果。
约束条件
- 所有输入均为整数
- 均不相同
输入
第一行包含两个整数,魔法阵的大小 和已配对的线段数量 。
接下来的 行中,给出了已配对的线段。
输出
请输出答案。
示例 1
3 0
输出示例 1
5
魔法阵的最小复杂度为 。
有 种配对方式,使得线段不相交。
示例 2
7 3
1 13
3 11
9 4
输出示例 2
4
最小复杂度为 。 以下是实现复杂度为 的 种配对方式。
・
・
・
・
示例 3
30 15
44 36
1 11
53 21
38 52
8 22
26 42
35 2
23 37
30 58
18 17
3 33
51 9
39 14
12 41
4 49
输出示例 3
1136