[语言月赛 202403] szmgo

Luogu
IDLGB3950
Time1000ms
Memory512MB
DifficultyP2
模拟2024O2优化字符串(入门)语言月赛
现代 szm 语采用罗马字表示,其划分音节的规则如下: - 规定元音是字符 `a`、`e`、`i`、`o`、`u` 之一。 - 一般地,一个音节仅包含一个元音,并且以元音结尾。 - 特别地,当且仅当 `n` 后第一个字符不是元音时,`n` 单独作一个音节。 - 一个音节至多包含 $3$ 个字符。 举个例子,`shinzanmono` 的音节依次为 `shi` `n` `za` `n` `mo` `no`;`naku` 的音节依次为 `na` `ku`。 如果一个字符串是空串或者不能按照以上规则划分,则这个字符串不合法。**题目描述中给出的字符串和测试数据中输入的字符串全部合法,你无需进行合法性检验。** 将字符串 $S$ 的 $k$ 个音节依次表示为 $S'_1 \sim S'_k$,将另一个字符串 $T$ 的 $m$ 个音节依次表示为 $T'_1 \sim T'_m$。 如果存在一个正整数 $p$,满足 $p+m-1 \leq k$ 且对于从 $p$ 到 $p+m-1$ 的每个正整数 $i$ 都有 $S'_i=T'_{i - p + 1}$,那么称 $S$「包含」$T$。 在 szm 语中有一些习语,一种习语对应有一些固定的字符串。如果一个字符串「包含」且仅「包含」一种习语的一个固定子串,那么这个字符串是这种习语,否则这个字符串不是这种习语。 例如,当一种习语对应的子串只有 `ao` 时,字符串 `nao` 不是这种习语,因为 `nao` 的音节依次为 `na` `o`,而 `ao` 的音节依次为 `a` `o`。另一个例子是,如果敬语对应的子串为 `desu` 和 `suma`,那么 `kyuusaidesu` 是敬语,而 `kyuusaidesuma` 和 `kyuusaidema` 不是敬语。 某种习语对应 $n$ 个长度不超过 $10$ 的不同子串,给定 $q$ 个字符串,判断每个字符串是否是这种习语。 ## Input 第一行输入两个整数 $n,q$,含义如题面所述。 接下来 $n$ 行,第 $i$ 行输入一个字符串 $c_i$,表示习语对应的第 $i$ 个子串。 接下来 $q$ 行,第 $i$ 行输入一个字符串 $s_i$,询问字符串 $s_i$ 是否是给定习语。 ## Output 输出 $q$ 行,如果字符串 $s_i$ 是给定习语,在第 $i$ 行输出 ` Yes, Commander`;否则在第 $i$ 行输出 `No, Commander`。 [samples] ## Background 本题请参考文字题解。 shinzanmono 想要学习 szm 语,但是 szm 语太难了。 ## Note ### 数据规模与约定 对于 $30\%$ 的数据,保证习语对应的所有字符串都没有由单个元音组成的音节。 对于另外 $30\%$ 的数据,保证习语对应的所有字符串均只包含一个音节。 对于 $100\%$ 的数据,$1 \leq n \leq 10$,$1 \leq q \leq 10^5$,习语对应的每个子串的长度不超过 $10$ 且两两不同,询问的 $q$ 个字符串的字符个数之和不超过 $5 \times 10^5$,输入的所有字符串均只包含小写字符。
Samples
Input #1
2 4
desu
suma
kyuusaidesu
kyuusaidesuma
kyuusaidema
desudesu
Output #1
Yes, Commander
No, Commander
No, Commander
Yes, Commander
API Response (JSON)
{
  "problem": {
    "name": "[语言月赛 202403] szmgo",
    "description": {
      "content": "现代 szm 语采用罗马字表示,其划分音节的规则如下: - 规定元音是字符 `a`、`e`、`i`、`o`、`u` 之一。 - 一般地,一个音节仅包含一个元音,并且以元音结尾。 - 特别地,当且仅当 `n` 后第一个字符不是元音时,`n` 单独作一个音节。 - 一个音节至多包含 $3$ 个字符。 举个例子,`shinzanmono` 的音节依次为 `shi` `n` `za` `n` `mo`",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB3950"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "现代 szm 语采用罗马字表示,其划分音节的规则如下:\n\n- 规定元音是字符 `a`、`e`、`i`、`o`、`u` 之一。\n- 一般地,一个音节仅包含一个元音,并且以元音结尾。\n- 特别地,当且仅当 `n` 后第一个字符不是元音时,`n` 单独作一个音节。\n- 一个音节至多包含 $3$ 个字符。\n\n举个例子,`shinzanmono` 的音节依次为 `shi` `n` `za` `n` `mo`...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments