A3775 「OOI 2020 Day 2」拉丁方阵

暂无评定 传统题 国际知名赛事 上传者
时间限制10000ms
内存限制1024MiB
通过 / 提交0/0

A3775「OOI 2020 Day 2」拉丁方阵

暂无评定 传统题 国际知名赛事 上传者
时间限制10000ms
内存限制1024MiB
通过 / 提交0/0

题目描述

题目译自 Open Olympiad in Informatics 2020 Day2 T4 「Латинский квадрат / Latin Squares」。

克里斯喜欢解决各种谜题。最近,他了解了数独游戏,其理念基于拉丁方阵。大小为 k×kk \times k 的表格被称为拉丁方阵,如果表格中不同元素的数量为 kk,且每行和每列中都没有两个相同的元素。

例如,以下是拉丁方阵的示例:

$\begin{array}{|c|c|} \hline \text{A} & \text{B} \\ \hline \text{B} & \text{A} \\ \hline \end{array}$,$\begin{array}{|c|c|c|} \hline \text{S} & \text{P} & \text{R} \\ \hline \text{R} & \text{S} & \text{P} \\ \hline \text{P} & \text{R} & \text{S} \\ \hline \end{array}$ 和 $\begin{array}{|c|} \hline \text{Q} \\ \hline \end{array}$ 是拉丁方阵,而 $\begin{array}{|c|c|c|} \hline \text{A} & \text{B} & \text{C} \\ \hline \text{C} & \text{C} & \text{A} \\ \hline \text{C} & \text{A} & \text{B} \\ \hline \end{array}$,$\begin{array}{|c|c|c|} \hline \text{A} & \text{B} & \text{C} \\ \hline \text{D} & \text{C} & \text{A} \\ \hline \text{C} & \text{A} & \text{B} \\ \hline \end{array}$ 和 $\begin{array}{|c|c|c|} \hline \text{A} & \text{B} & \text{C} \\ \hline \text{C} & \text{A} & \text{B} \\ \hline \end{array}$ 不是。

克里斯想基于拉丁方阵设计一个新的谜题。然而,他手头只有一个旧的模板,是一个大小为 n×mn \times m 的表格。克里斯希望从这个模板中切出一块连续的部分,使其成为一个拉丁方阵。他能有多少种方式做到这一点?两种方式被认为是不同的,如果存在一个模板单元格在一种情况下属于切割部分,而在另一种情况下不属于切割部分。

输入格式

第一行包含两个整数 nn 和 mm (1≤n,m≤2000)(1 \leq n, m \leq 2000),表示模板的尺寸。

接下来的 nn 行描述模板,每行包含一个长度为 2⋅m2 \cdot m 的字符串 sis_i,由 ASCII 码在 3333 到 126126 之间的字符组成。模板中第 ii 行第 jj 列的单元格包含字符对 si,2⋅j−1s_{i, 2 \cdot j - 1} 和 si,2⋅js_{i, 2 \cdot j} (1≤i≤n,1≤j≤m)(1 \leq i \leq n, 1 \leq j \leq m)。模板中两个单元格的元素相等,当且仅当这两个单元格中的字符对相同。有关输入数据的详细说明,请参见备注。

输出格式

输出一个整数,即从模板中切割出拉丁方阵的方式数量。

4 5
AABBAAAACC
BBAABBCCAA
AABBCCAABB
BBCCAABBCC

26

在第一个样例中,除了 2020 种切割出 1×11 \times 1 拉丁方阵的方式外,还有以下 66 种方式切割出拉丁方阵:

5 10
!"#$%&’()*+,-./01234
56789:;<=>?@ABCDEFGH
IJKLMNOPQRSTUVWXYZ[\
]^_‘abcdefghijklmnop
qrstuvwxyz{|}~!"#$%&

50

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 附加限制 子任务依赖 备注
11 99 n,m≤20n, m \leq 20 00
22 1010 n,m≤100n, m \leq 100 0,10, 1
33 2525 n,m≤500n, m \leq 500 0,1,20, 1, 2
44 2626 每行和每列中的所有元素均不同
55 3030 0,1,2,3,40, 1, 2, 3, 4