luogu#P10230. [COCI 2023/2024 #4] Lepeze

[COCI 2023/2024 #4] Lepeze

题目背景

译自 COCI 2023/2024 Contest #4 T3「Lepeze

题目描述

小 Fran 收到了一个礼物——一个正多边形木制框架。由于多边形有 nn 个顶点,他还收到了 n(n3)2\frac{n(n-3)}{2} 根与每条对角线相匹配的木棍。多边形的顶点按逆时针顺序标记为 11nn。一开始,弗兰将 n3n-3 根木棍放在框架内,以使每根木棍接触框架的两个不相邻顶点,并且没有两根木棍相交。换句话说,他做了一个三角剖分。由于这对他来说不够有趣,他决定进行特定的操作来改变这种放置方法,该操作由两个步骤组成:

  1. 移除一根木棍。
  2. 添加一根新的木棍,使得我们得到一个新的三角剖分。

我们用一个由无序对组成的有序对 ((a,b),(c,d))((a, b),(c, d)) 来描述这个操作,表示小 Fran 移除了接触顶点 aabb 的木棍,并添加了接触顶点 ccdd 的木棍。

弗兰喜欢扇子,所以在进行这些操作时,他有时会问自己:「将这个三角剖分转换为以顶点 xx 为『扇形』三角剖分需要多少次操作,并且有多少种方式可以实现?」

由于他忙于操作和娱乐,他请求你的帮助!

以顶点 xx 为中心的「扇形」三角剖分是一种三角剖分,其中所有的对角线都有一个共同的端点,即顶点 xx

设所需操作的数量为 mm。设 f1,f2,,fmf_1,f_2,\ldots ,f_m 是一个操作序列,满足按这一顺序操作可以实现满足条件的三角剖分。设 s1,s2,,sms_1,s_2,\ldots ,s_m 是另一种这样的序列。如果存在一个下标 ii 使得 fisif_i\neq s_i,则两个序列是不同的。

由于这样的序列数量可能非常大,小 Fran 只关心它对 109+710^9 + 7 取模后的值。

输入格式

第一行两个整数 nnq (4n2105,1q2105)q\ (4\le n\le 2\cdot 10^5,1\le q\le 2\cdot 10^5),表示顶点数和事件数。

接下来 n3n-3 行,每行两个整数 xi,yi (1xi,yin)x_i,y_i\ (1\le x_i,y_i\le n),表示第 ii 根木棍接触的两个顶点。

接下来 qq 行,每行描述一个事件。第一个整数为 ti (1ti2)t_i\ (1\le t_i\le 2),表示事件类别。

如果 ti=1t_i=1,则接下来还有四个整数 ai,bi,ci,di (1ai,bi,ci,din)a_i,b_i,c_i,d_i\ (1\le a_i,b_i,c_i,d_i\le n),表示一次 ((ai,bi),(ci,di))((a_i,b_i),(c_i,d_i)) 操作。保证给出的操作可以实现。

如果 ti=2t_i=2,则接下来一个整数 xi (1xin)x_i\ (1\le x_i\le n),表示小 Fran 对与目前顶点 xix_i​ 处的「扇形」三角剖分的数据感兴趣。

输出格式

对于每个类型为 22 的事件,按照它们在输入中的顺序,输出两个整数:所需的最小操作数和使用最小操作数达到目标三角剖分的方式数量。

4 3
1 3
2 1
1 1 3 2 4
2 1

0 1
1 1

5 4
1 3
3 5
2 1
2 2
1 1 3 2 5
2 2

1 1
2 1
1 1

9 3
1 5
1 7
2 4
2 5
5 7
7 9
2 1
1 2 5 1 4
2 1

4 12
3 6

提示

样例解释 1

起始三角剖分已经是以顶点 11 为中心的「扇形」三角剖分,所以小 Fran 不需要进行任何操作,有一种方式可以实现。在执行给定的操作后,将其恢复到先前状态只有一种方式,即进行操作 ((2,4),(1,3))((2, 4),(1, 3))

样例解释 2

第一个询问对应的唯一操作序列:((3,5),(1,4))((3,5),(1,4))

第二个询问对应的唯一操作序列:((1,3),(2,5)),((3,5),(2,4))((1,3),(2,5)),((3,5),(2,4))

第三个询问对应的唯一操作序列:((3,5),(2,5))((3,5),(2,5))

子任务

子任务编号 附加限制 分值
11 n9,q1 000n\le 9,q\le 1\ 000 1212
22 对于所有 i=1,,n3i=1,\ldots,n-3,满足 xi=1,yi=i+2x_i=1,y_i=i+2,且没有 ti=1t_i=1 的事件 1616
33 q=1q=1 3030
44 n,q1 000n,q\le 1\ 000 1212
55 无附加限制 4040