QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 1024 MB Points totaux : 100
Statistiques

磁盘 #1 上存储了一个长度为 $m$ 的二进制字符串 $s_1$。

接下来进行 $n - 1$ 次操作。在第 $i$ 次操作中,选择一个磁盘 $1 \le p_{i+1} \le i$,并将该磁盘上的字符串 $s_{p_{i+1}}$ 复制到磁盘 $i + 1$,生成 $s_{i+1}$。然而,在复制过程中,最多可能有 $k$ 个比特位被翻转(即最多在 $k$ 个位置发生错误)。

给你最终的全部 $n$ 个二进制字符串 $s_1, s_2, \dots, s_n$,每个字符串的长度均为 $m$。你的任务是确定有多少种可能的序列 $p_2, p_3, \dots, p_n$ 可以导致这种最终配置。

由于答案可能很大,你只需要求出答案对 998244353 取模后的结果。

输入格式

输入的第一行包含三个整数 $n, m, k$($2 \le n \le 5000, 4 \le m \le 15000, 1 \le k \le 3$),含义如题面所述。保证 $m$ 是 4 的倍数。

接下来的 $n$ 行,每行包含一个长度为 $m/4$ 的十六进制字符串 $s'_i$。$s'_i$ 的每个字符是 0–9 或 A–F 之一,其中 A = 10, B = 11, ..., F = 15。

十六进制表示 $s'_i$ 中的每个字符对应二进制字符串 $s_i$ 中的四个连续比特。具体来说,对于每个字符 $s'_{i,j}$,可以证明存在唯一的四元组 $(a, b, c, d)$ 满足 $s'_{i,j} = 8a + 4b + 2c + d$ 且 $a, b, c, d \in \{0, 1\}$。二进制字符串 $s_i$ 中的比特满足 $(s_{i,4j}, s_{i,4j+1}, s_{i,4j+2}, s_{i,4j+3}) = (a, b, c, d)$。

输出格式

输出一个整数——满足条件的序列 $(p_2, p_3, \dots, p_n)$ 的数量对 998244353 取模后的结果。

样例

输入样例 1

5 8 2
95
05
BD
9C
BD

输出样例 1

6

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.