SP2526 GNY07D - Decoding

题目描述

Chip 和 Dale 发明了一种加密方法,用于隐藏他们的文本消息。他们首先私下选择两个数字,这两个数字将分别用作矩阵的行数($R$)和列数($C$)。消息发送者使用以下方法将文本转换为中间格式: 1. 文本由大写字母 \[A-Z\] 和 `.` 组成。 2. 每个字符对应的十进制值为:`.` = 0, A = 1, B = 2, C = 3, ..., Y = 25, Z = 26。 发送者按螺旋顺序将字符的五位二进制表示填入矩阵中。为了让矩阵完全填满,会用0来补全。例如,若要编码的文本是 "ACM",且 $R=4$ 和 $C=4$,矩阵将被填充如下: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP2526/ad178b3b0c6ff30c857ecbf6bb1caa15188666ae.png) ``` A = 00001, C = 00011, M = 01101 (补一个额外的 0) ``` 矩阵中的位按行优先顺序进行拼接,然后发送给接收者。上述例子的编码结果为:0000110100101100。

输入格式

第一行输入一个整数 $N$,表示有 $N$ 个数据集($1 < N \leq 100$)。每个数据集包括一行,包含 $R$($1 \leq R \leq 20$),一个空格,$C$($1 \leq C \leq 20$),一个空格,以及表示矩阵内容的二进制字符串(共 $R \times C$ 个二进制数字)。这些二进制数字以行优先顺序排列。

输出格式

对每个数据集,输出一行,包含数字数据集编号(从 1 开始),一个空格,和解码后的文本消息。解码过程中应删去任何尾部的空格和不完整的字符。 **本翻译由 AI 自动生成**