QOJ.ac

QOJ

Time Limit: 3.0 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#12343. Zee 的 Zong

Statistics

沉着冷静的 Unterzee 船长一直在追捕海盗诗人。他们的竞争由来已久,且早已没有了界限。每当船长抵达海盗诗人预期的港口时,他总是找不到人,只留下一条海盗诗人承认她几天前已离开港口的消息,并留给船长那永无止境的杰作中的又一行诗句:Zong of the Zee。

船长和海盗诗人都知道,Zong 的终结将为他们的竞争画上最终的句号。一旦船长找齐了它,他们就会相遇,最终的决战便会开始。

港口接港口,诗行接诗行……也许,答案一直都在那里。船长知道他不可能活得足够久去见证 Zong 的终结,因此他唯一能做的就是智胜海盗诗人。

到目前为止,这首诗的每一行都是第一行的变位词。此外,船长怀疑所有的诗行都是通过相同的方式获得的,即对前一行应用某个固定的置换 $\pi_1, \dots, \pi_n$。也就是说,新的一行中位置 $i$ 上的字符,是前一行中位置 $\pi_i$ 上的字符。

船长想要通过猜测预期的置换来恢复整首诗。但首先,他想知道他需要检查多少种变体。船长仔细抄录了诗的每一行,共 $m$ 行,每行 $n$ 个 Unterzian 字母。不幸的是,有时很难理解船长的字迹,因此一些字母(但每行最多一个)可能被问号(“?”)所取代,这意味着你不确定它究竟是什么字母。你需要计算与给定数据一致的置换 $\pi_1, \dots, \pi_n$ 的数量:换句话说,即存在一种方式将所有的“?”替换为某些 Unterzian 字母,使得每一行诗都可以通过对前一行应用该置换得到。

输出答案对 $10^9 + 7$ 取模的结果。船长知道如何处理这些信息。大概吧。

输入格式

第一行包含两个整数 $m$ 和 $n$ ($2 \le n, m \le 3000$)。

接下来的 $m$ 行中,第 $i$ 行包含诗的第 $i$ 行。每一行恰好包含 $n$ 个字符,每个字符要么是一个 Unterzian 字母,要么是一个问号(“?”)。每一行最多包含一个问号。

每个 Unterzian 字母的 ASCII 码在 33 到 126 之间,但“?”除外,其 ASCII 码为 63。

输出格式

输出一个整数,即问题的答案。

样例

样例输入 1

3 3
ib.
.?b
b.?

样例输出 1

1

样例输入 2

2 4
abb?
ba?a

样例输出 2

4

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#240EditorialOpen题解jiangly2025-12-13 00:26:16View

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.