#83. 「NOI2021」路径交点

    ID: 83 传统题 1000ms 1024MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>文件 IO矩阵高斯消元NOI2021LGV 引理

「NOI2021」路径交点

题目描述

小 L 有一个有向图,图中的顶点可以分为 kk 层,第 ii 层有 nin_i 个顶点,第 11 层与第 kk 层顶点数相同,即 n1=nkn_1 = n_k,且对于第 jj(2≤j≤k−12 \leq j \leq k-1)层,n1≤nj≤2n1n_1 \leq n_j \leq 2n_1。对于第 jj(1≤j<k1 \leq j < k)层的顶点,以它们为起点的边只会连向第 j+1j + 1 层的顶点。没有边连向第 11 层的顶点,第 kk 层的顶点不会向其他顶点连边。

现在小 L 要从这个图中选出 n1n_1 条路径,每条路径以第 11 层顶点为起点,第 kk 层顶点为终点,并要求图中的每个顶点至多出现在一条路径中。更具体地,把每一层顶点按照 1,2,…,n11,2,\ldots,n_1 进行编号,则每条路径可以写为一个 kk 元组 (p1,p2,…,pk)(p_1,p_2,\ldots,p_k),表示这条路径依次经过第 jj 层的 pjp_j(1≤pj≤nj1 \leq p_j \leq n_j)号顶点,并且第 jj(1≤j<k1 \leq j < k)层的 pjp_j 号顶点有一条边连向第 j+1j+1 层的第 pj+1p_{j+1} 号顶点。

小 L 把这些路径画在了纸上,发现它们会产生若干个交点。对于两条路径 P,QP,Q,分别设它们在第 jj 层与第 j+1j+1 层之间的连边为 (Pj,Pj+1)(P_j,P_{j+1}) 与 (Qj,Qj+1)(Q_j,Q_{j+1}),若,

(Pj−Qj)×(Pj+1−Qj+1)<0(P_j-Q_j)\times(P_{j+1}-Q_{j+1})<0

则称它们在第 jj 层后产生了一个交点。两条路径的交点数为它们在第 1,2,…,k−11, 2,\ldots,k - 1 层后产生的交点总数。对于整个路径方案,它的交点数为两两不同路径间交点数之和。例如下图是一个 33 条路径,共 33 个交点的例子,其中红色点是交点。

小 L 现在想知道有偶数个交点的路径方案数比有奇数个交点的路径方案数多多少个。两个路径方案被视为相同的,当且仅当它们的 n1n_1 条路径按第一层起点编号顺序写下的 kk 元组能对应相同。由于最后的结果可能很大,请你输出它对 998244353998244353(一个大质数)取模后的值。

输入格式

从文件 xpath.in 中读入数据。

本题有多组数据,输入数据第一行一个正整数 TT ,表示数据组数。对于每组数据:

第一行一个正整数 kk,表示一共有 kk 层顶点。

第二行包含 kk 个整数 n1,n2,…,nkn_1,n_2,\ldots,n_k,依次表示每一层的顶点数量。保证 n1=nkn_1=n_k,且 n1≤ni≤2n1n_1 \leq n_i \leq 2n_1(2≤i≤k−12 \leq i \leq k-1)。

第三行包含 k−1k-1 个整数 m1,m2,…,mk−1m_1,m_2,\ldots,m_{k-1},依次表示第 jj 层顶点到第 j+1j+1 层顶点的边数。保证 mj≤nj×nj+1m_j \leq n_j \times n_{j+1}。

接下来有 k−1k-1 段输入。第 jj(1≤j<k1 \leq j < k)段输入包含 mjm_j 行,每一行两个整数 u,vu,v,表示第 jj 层的 uu 号顶点有一条边连向第 j+1j+1 层的 vv 号顶点。

数据保证图中不会出现重边。

输出格式

输出到文件 xpath.out 中。

输出共 TT 行,每行一个整数,表示该组数据的答案对 998244353998244353 取模后的值。

样例

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

偶数个交点的方案有 22 个,奇数个交点的方案有 11 个,所以答案为 11。

将下表中路径 11 和路径 22 的方案交换,将会得到相同的方案,例如路径 11 为 (2,3,1)(2, 3, 1) 且路径 22 为 (1,1,2)(1, 1, 2) 的方案与方案 11 是相同的方案,所以不会被计入答案。

路径方案 路径 11 路径 22 交点总数
11 (1,1,2)(1,1,2) (2,3,1)(2,3,1) 11
22 (1,2,1)(1,2,1) (2,1,2)(2,1,2) 22
33 (1,2,1)(1,2,1) (2,3,2)(2,3,2) 00

数据范围与提示

对于所有测试数据:2≤k≤1002 \leq k \leq 100,2≤n1≤1002 \leq n_1 \leq 100,1≤T≤51 \leq T \leq 5。

每个测试点中,保证 n1>10n_1 > 10 的数据只有 11 组。

测试点编号 k=k= n1≤n_1 \leq 特殊性质
1∼41 \sim 4 22 1010 无
5∼65 \sim 6 1010 A,B
7∼87 \sim 8 A
9∼109 \sim 10 无
11∼1311 \sim 13​ 22 100100
14∼1514 \sim 15 100100 A,B
16∼1716 \sim 17 A
18∼2018 \sim 20 无

特殊性质 A:对于所有 ii(2≤i≤k−12 \leq i \leq k-1)满足 ni=n1n_i = n_1。

特殊性质 B:保证路径方案总数至多为 11。