QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100

#4792. Origami

Statistics

你有一张大小为 $N \times M$ 的矩阵形状的纸。每个单元格都被涂上了 26 种可能的颜色之一,这些颜色由小写英文字母表示。这张纸可以通过以下方式折叠:首先,你在两列之间选择一条垂直线,或者在两行之间选择一条水平线。这条线将纸分成两部分。然后,你以这条线为折叠轴,将较小的一侧折叠到较大的一侧上。但是,只有当较小一侧的所有单元格与另一侧的对应单元格颜色匹配时(换句话说,每个单元格的颜色必须与其关于所选轴的反射位置的颜色相同),你才能进行此操作。如果两侧大小相等,你可以从任意一侧折叠。

你注意到,经过任意次数的折叠操作后,你最终会得到原始纸张的一个连续子矩阵。通过进行任意多次(可能为零次)折叠操作,你可以得到多少种不同的原始纸张子矩阵?如果两个子矩阵在初始矩阵中占据不同的坐标,即使它们具有相同的颜色内容,也被视为不同的子矩阵。

输入格式

第一行包含两个整数 $N$ 和 $M$ ($N, M \ge 1, 1 \le N \cdot M \le 1\,000\,000$)。

接下来的 $N$ 行,每行包含一个长度为 $M$ 的字符串,由小写英文字母组成。这些行共同描述了给定的纸张。

输出格式

输出一行,包含一个整数:通过折叠纸张可以得到的不同子矩阵的数量。

样例

样例输入 1

5 7
baabbaa
cbbccbb
ababbab
cabccba
bccaacc

样例输出 1

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.