QOJ.ac

QOJ

実行時間制限: 2.0 s メモリ制限: 256 MB 満点: 100

#11731. 模式匹配

統計

Rikka 有 $n$ 个集合 $S_1, S_2, \dots, S_n$,其中包含小写英文字母。如果存在一个下标 $i$,使得以下所有条件成立:$p_1 \in S_i, p_2 \in S_{i+1}, \dots, p_m \in S_{i+m-1}$,则称长度为 $m$ 的模式串 $p_1p_2 \dots p_m$ 与这些集合匹配。

初始时,所有集合均为空。Rikka 准备了一些操作来填充这些集合。每个操作的形式为“将字符 $c$ 加入集合 $i$”。每一轮,Rikka 会以相等的概率随机选择一个操作并执行。同一个操作可以被多次选择和执行。

求直到模式串 $p_1p_2 \dots p_m$ 与集合匹配所需的期望轮数。

输入格式

第一行包含一个整数 $T$,表示测试用例的数量 ($1 \le T \le 5$)。

对于每个测试用例,第一行包含两个整数 $n$ 和 $m$ ($1 \le m \le n \le 30$)。

接下来的 $n$ 行中,第 $i$ 行包含一个字符串 $t_i$,由小写英文字母组成。每个字母 $t_{i,j}$ 代表一个将该字母加入集合 $i$ 的操作。每个字符串均非空,且每个字母最多出现一次。

每个测试用例的最后一行包含模式串:一个由小写英文字母组成的字符串 $p_1p_2 \dots p_m$。

输出格式

对于每个测试用例,如果模式串永远无法与集合匹配,输出 $-1$。否则,输出整数 $(p \cdot q^{-1}) \pmod{998\,244\,353}$,其中 $\frac{p}{q}$ 为期望轮数。

样例

样例输入 1

1
1 1
ab
a

样例输出 1

2

样例输入 2

1
3 2
acb
cb
ab
cb

样例输出 2

915057330

说明

对于第一个样例测试用例,期望值为 $\frac{1}{2} \cdot 1 + \frac{1}{2^2} \cdot 2 + \dots = 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.