#xxs003. 局部函数(function)[2026 模拟赛一 T3]

局部函数(function)[2026 模拟赛一 T3]

题目描述

有 nn 个寄存器排成一行,第 ii 个寄存器的初值为 ai∈{1,2,3,4}a_i\in\{1,2,3,4\}。两端各有一个额外的寄存器,编号为 00 和 n+1n+1,值始终为 11,不参与刷新。

对于每个 1≤i≤n1\le i\le n,给定函数 gi:{1,2,3,4}2→{1,2,3,4}g_i:\{1,2,3,4\}^2\to\{1,2,3,4\}(即输入两个 1∼41\sim4 的整数,输出一个 1∼41\sim4 的整数)。刷新第 ii 个寄存器时,读取左右相邻寄存器的当前值 x,yx,y,将它的值改为 gi(x,y)g_i(x,y),其他寄存器的值不变。

选择 1,2,…,n1,2,\ldots,n 的一个排列,按此顺序将每个内部寄存器恰好刷新一次。求能得到多少个不同的最终序列,答案对 998244353998244353 取模。

最终序列只包含编号 11 至 nn 的寄存器。不同刷新顺序得到相同的最终序列,只计一种结果。

输入格式

第一行包含一个整数 nn。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

接下来 nn 行,第 ii 行包含 1616 个整数,依次为 $g_i(1,1),g_i(1,2),\ldots,g_i(1,4),g_i(2,1),\ldots,g_i(4,4)$,即先按第一个参数递增,再按第二个参数递增。

输出格式

输出一个整数,表示不同最终序列的数量对 998244353998244353 取模后的值。

样例

输入

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

输出

3

样例解释

当刷新顺序为 (1,2,3)(1,2,3) 或 (3,2,1)(3,2,1) 时,最终序列为 (2,2,2)(2,2,2);当顺序为 (1,3,2)(1,3,2) 或 (3,1,2)(3,1,2) 时,最终序列为 (2,1,2)(2,1,2);当顺序为 (2,1,3)(2,1,3) 或 (2,3,1)(2,3,1) 时,最终序列为 (1,1,1)(1,1,1)。六种顺序共得到三种结果,答案为 33。

数据范围

测试点编号 n≤n\le 特殊性质
1--3 8 无
4--6 20
7--9 100
10--11 2×1052\times10^5 A
12--13 B
14--16 C
17--20 无

对于所有测试点,1≤n≤2×1051\le n\le2\times10^5,ai∈{1,2,3,4}a_i\in\{1,2,3,4\}。对于每个 1≤i≤n1\le i\le n 及任意 x,y∈{1,2,3,4}x,y\in\{1,2,3,4\},都有 gi(x,y)∈{1,2,3,4}g_i(x,y)\in\{1,2,3,4\}。

特殊性质 A:对于所有 ii 及任意 x∈{1,2,3,4}x\in\{1,2,3,4\},都有 gi(x,1)=gi(x,2)=gi(x,3)=gi(x,4)g_i(x,1)=g_i(x,2)=g_i(x,3)=g_i(x,4)。

特殊性质 B:对于所有 ii 及任意 y∈{1,2,3,4}y\in\{1,2,3,4\},都有 gi(1,y)=gi(2,y)=gi(3,y)=gi(4,y)g_i(1,y)=g_i(2,y)=g_i(3,y)=g_i(4,y)。

特殊性质 C:所有初值均属于 {1,2}\{1,2\},且对所有 ii 及任意 x,y∈{1,2}x,y\in\{1,2\},都有 gi(x,y)∈{1,2}g_i(x,y)\in\{1,2\}。