[信息与未来 2021] 摩尔斯电码

Luogu
IDLGB3757
Time1000ms
Memory128MB
DifficultyP2
字符串2021江苏信息与未来
摩尔斯电码就是这样一种早期的数字通信协议,它通过喇叭发声长短来表示不同的英文字母: 1. 点(半角点号 `.`),喇叭响 $1$ 单位时间,读作“滴”($\tt dit$); 1. 划(半角减号 `-`),喇叭响 $3$ 单位时间,读作“嗒”($\tt dah$); 1. 字符/单词间的停顿,字符停顿 $3$ 单位时间,单词停顿 $7$ 单位时间。 下图列出了摩尔斯电码和英文字母之间的对应: ![](https://cdn.luogu.com.cn/upload/image_hosting/ztfabvb2.png) 例如,大家可以试试把 `... --- ...` 对照上面的表格翻译成英文(空格代表字符的分割)。没错,这就是著名的 “$\tt SOS$” 紧急求救信号。现在,你需要写一个程序把收到的摩尔斯电码翻译回英文字符。 ## Input 输入数据的第一行是一个整数 $n$,代表共有 $n$ 个需要解码的英文字母。 输入数据的第二行包含 $n$ 个摩尔斯电码点/划组成的字符串(字符串之间用一个空格隔开),每个字符串仅包含若干半角减号 `-` 和半角点号 `.`,且保证能翻译为 $26$ 个英文字母中的一个。 ## Output 输出一行,为摩尔斯电码解码后得到的字符串。 [samples] ## Background 早期的电报机只能表达两种状态:电路导通和电路断开。电路导通时喇叭可以发声;断开时则不发声。如何用这样的机器来传递人类能理解的信号呢?聪明的你一定想到了——时间的长短可以表达不同的含义(例如长代表 $\tt{1}$、短代表 $\tt{0}$),然后再把 $\tt{01}$ 的二进制序列对应到字符就可以啦。 ## Note 解释:`The quick brown fox jumps over the lazy dog` 是一个经典的包含了所有 $26$ 个字母的句子。~~此外请注意因为文本宽度限制,样例第二行中的摩尔斯电码产生了断行。在实际的输入数据中,所有的摩尔斯电码均在同一行。~~ > 划掉部分为原题面所加,在迁移至洛谷时已修复样例。 对于 $100\%$ 的数据,$1\leq n\leq 10^3$。 >本题原始满分为 $15\text{pts}$。
Samples
Input #1
3
... --- ...
Output #1
SOS
Input #2
35
- .... . --.- ..- .. -.-. -.- -... .-. --- .-- -. ..-. --- -..- .--- ..- -- .--. ... --- ...- . .-. - .... . .-.. .- --.. -.-- -.. --- --.
Output #2
THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
API Response (JSON)
{
  "problem": {
    "name": "[信息与未来 2021] 摩尔斯电码",
    "description": {
      "content": "摩尔斯电码就是这样一种早期的数字通信协议,它通过喇叭发声长短来表示不同的英文字母: 1. 点(半角点号 `.`),喇叭响 $1$ 单位时间,读作“滴”($\\tt dit$); 1. 划(半角减号 `-`),喇叭响 $3$ 单位时间,读作“嗒”($\\tt dah$); 1. 字符/单词间的停顿,字符停顿 $3$ 单位时间,单词停顿 $7$ 单位时间。 下图列出了摩尔斯电码和英文字母之间的对应: ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB3757"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "摩尔斯电码就是这样一种早期的数字通信协议,它通过喇叭发声长短来表示不同的英文字母:\n\n1. 点(半角点号 `.`),喇叭响 $1$ 单位时间,读作“滴”($\\tt dit$);\n1. 划(半角减号 `-`),喇叭响 $3$ 单位时间,读作“嗒”($\\tt dah$);\n1. 字符/单词间的停顿,字符停顿 $3$ 单位时间,单词停顿 $7$ 单位时间。\n\n下图列出了摩尔斯电码和英文字母之间的对应:\n...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments