题目描述
现在有一个 n×n 的 01 矩阵† A。
一次对矩阵 A 的操作被定义为:
- 对于所有 1≤i≤n,1≤j≤n,若 Ai−1,j+Ai+1,j≥1 且 Ai,j−1+Ai,j+1≥1,则将 Ai,j 改为 1,否则不变。
特别地,若 i<1 或 i>n 或 j<1 或 j>n,则认为 Ai,j=0。
定义矩阵 A 是好的,当且仅当对 A 进行恰好 10100 次操作后,A 中不存在 0。
给定一个 n×n 的 01 矩阵 B。
已知此矩阵 A 满足:
- 对于所有 1≤i,j≤n,Ai,j≤Bi,j;
- ∑i=1n∑j=1nAi,j≤n;
- A 是一个好矩阵。
问矩阵 A 有多少种可能,答案对 998244353 取模。
†:指所有数均为 0 或 1 的矩阵。
输入格式
第一行一个整数 n。
接下来 n 行,每行 n 个整数。第 i 行第 j 个整数为 Bi,j。
输出格式
仅一行一个整数,为答案对 998244353 取模后的值。
样例
2
1 1
1 0
1
说明/提示
对于 100% 的数据:
- 1≤n≤150;
- Bi,j∈{0,1}。
本题开启捆绑测试。
- Subtask #1(5 pts):n≤5。
- Subtask #2(5 pts):∑i=1n∑j=1nBi,j=n。
- Subtask #3(10 pts):n≤8。
- Subtask #4(10 pts):n≤11,Bi,j=1。
- Subtask #5(5 pts):若 ∣i−j∣>1,则 Bi,j=0。
- Subtask #6(20 pts):n≤18。
- Subtask #7(10 pts):Bi,j=1。
- Subtask #8(10 pts):n≤40。
- Subtask #9(25 pts):无特殊限制。