#P11356. [eJOI 2023] Opening Offices

[eJOI 2023] Opening Offices

题目描述

你的公司要在 N×MN\times M 的网格图上建造办公室。如图所示,网格图上有横着和竖着的边,其边权均为 11。

在白天,所有道路都是可以走的。在晚上,只有 N×M−1N\times M-1 条边有照明且可以走。

你喜欢巡视办公室。每天,你都会以一个顺序从一个办公室开始,经过可用的边遍历每个办公室一次,最后回到起点。你希望选择网格图上一个点的子集 SS,满足其在白天和晚上进行巡视所需走过的最短路径长度相等。

你希望计算三种条件下,可能的 SS 的数量对 109+710^9+7 取模的值:

  1. ∣S∣≥2|S|\geq 2。
  2. ∣S∣=2|S|=2。
  3. ∣S∣=3|S|=3。

输入格式

第一行输入三个整数 N,M,TN,M,T,其中 TT 代表你需要计算的问题编号。

接下来 NN 行,每行输入一个长度为 MM 的字符串 Ai,jA_{i,j}。

  • Ai,j∈{1,3}A_{i,j}\in\{\texttt{1},\texttt{3}\} 代表 (i,j)(i,j) 有连向 (i−1,j)(i-1,j) 的边。
  • Ai,j∈{2,3}A_{i,j}\in\{\texttt{2},\texttt{3}\} 代表 (i,j)(i,j) 有连向 (i,j−1)(i,j-1) 的边。

保证输入的是一棵树。

输出格式

输出一个整数,代表答案对 109+710^9+7 取模的值。

2 3 2
022
031
12
2 3 3
022
031
10
2 3 1
022
031
25

提示

【样例解释】

如上方示意图所示。

以下为 ∣S∣=2|S|=2 的方案:{A,B}\{A,B\},{A,C}\{A,C\},{A,E}\{A,E\},{A,F}\{A,F\},{B,C}\{B,C\},{B,D}\{B,D\},{B,E}\{B,E\},{B,F}\{B,F\},{C,D}\{C,D\},{C,E}\{C,E\},{C,F}\{C,F\},{D,E}\{D,E\}。

以下为 ∣S∣=3|S|=3 的方案:{A,B,C}\{A,B,C\},{A,B,E}\{A,B,E\},{A,B,F}\{A,B,F\},{A,C,E}\{A,C,E\},{A,C,F}\{A,C,F\},{B,C,D}\{B,C,D\},{B,C,E}\{B,C,E\},{B,C,F}\{B,C,F\},{B,D,E}\{B,D,E\},{C,D,E}\{C,D,E\}。

以下为 ∣S∣=4|S|=4 的方案:{A,B,C,E}\{A,B,C,E\},{A,B,C,F}\{A,B,C,F\},{B,C,D,E}\{B,C,D,E\}。

【数据范围】

本题采用捆绑测试。

  • Subtask 1(4 pts):N,M≤2N,M\leq 2。
  • Subtask 2(5 pts):N=1N=1。
  • Subtask 3(9 pts):T=2T=2,N,M≤50N,M\leq 50。
  • Subtask 4(11 pts):T=2T=2。
  • Subtask 5(9 pts):T=3T=3,N,M≤20N,M\leq 20。
  • Subtask 6(13 pts):T=3T=3。
  • Subtask 7(14 pts):T=1T=1,N,M≤4N,M\leq 4。
  • Subtask 8(10 pts):T=1T=1,N,M≤50N,M\leq 50。
  • Subtask 9(9 pts):T=1T=1,Ai,j≠3A_{i,j}\neq \texttt{3}。
  • Subtask 10(16 pts):T=1T=1。

对于 100%100\% 的数据,保证 1≤T≤31\leq T\leq 3,1≤N,M≤1031\leq N,M\leq 10^3,$A_{i,j}\in\{\texttt{0},\texttt{1},\texttt{2},\texttt{3}\}$。