SP697 MWORDS - Matrix Words
题目描述
给定一个 $N \times N$ 的字符矩阵。我们从位置 $(1, 1)$ 开始,目标是在恰好 $2N-1$ 步内到达 $(N, N)$。每次可以向上下左右移动一步。在此过程中,我们收集所经过位置的字符,拼接形成一个字符串。我们要求所有路径,不得穿过矩阵的主对角线,但路径可以部分通过对角线。这些路径分为两类:对角线上方和对角线下方的路径。每条路径将由沿途收集的字符依次组成一个字符串。如果将所有的合法路径(包括上方和下方)生成的字符串按字母顺序排列,我们就得到一个"主集合"。注意,主集合中可能会有重复项,所有字符串长度均为 $2N-1$。假设主集合中共有 $M$ 个字符串,给定一个整数 $I$,我们需要找到主集合中索引为 $I \mod M$ 的字符串。
例如,假设主集合为 {“A”, “B”, “B”, “C”}(尽管这种情况不可能真正出现),当 $I=0$ 时,对应的字符串是“A”;而 $I=2$ 和 $I=5$ 时,对应的字符串是“B”。
**约束条件:**
- $N \leq 30$。
- $I \leq 10^{18}$。$I$ 是一个可用 64 位整数表示的数。
输入格式
- 第一行是一个整数 $T$,表示有多少组测试数据。
- 对于每组测试数据,第一行包含两个整数 $N$ 和 $I$。
- 接下来是一个 $N \times N$ 的字符矩阵,每行包含 $N$ 个字符。
- 字符全部为大写字母,从 'A' 到 'Z' 。
输出格式
对于每组测试数据,输出在主集合中对应的字符串。
**本翻译由 AI 自动生成**