[CSP-X2023 山东] 回文字符串

Luogu
IDLGB4101
Time2000ms
Memory512MB
DifficultyP3
2023山东CSP-X 小学组
作为一个新手,小明刚学了回文字符串,知道了一个字符串如果关于中心对称,则该字符串为回文字符串。 于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串 $S$ 是回文字符串: 首先把字符串 $S$ 分割成 $n$ 个子串 $S_1,S_2,\ldots,S_n$,即 $S_1+S_2+\ldots+S_n = S$(其中 $+$ 为字符串拼接操作)。 分割成的子串数量需要大于 $1$,且不能为空,即 $n > 1$ 且 $S_i$ 为非空子串。 对于所有的 $i \in[1, n]$ 有:要么 $S_i$ 与 $S_{n−i+1}$ 相等,要么 $S_i$ 与 $S_{n−i+1}$ 互为回文。(补充说明:字符串 $A$ 和 $B$ 互为回文指 $A$ 倒过来与 $B$ 相等,反之亦然。举例说明:$\texttt{abc}$ 与 $\texttt{cba}$ 互为回文。) 给定一个字符串 $S$,请你帮助小明确定该字符串是否是在上述规则下的回文字符串。 如果是,他还想将字符串 $S$ 分成尽可能多的子串。 ## Input 一行一个字符串 $S$。 ## Output 如果不能满足要求,输出一行一个字符串 $\texttt{NO}$;否则,输出两行,第一行一个字符串 $\texttt{YES}$,第二行一个整数 $n$ 表示最大的子串数量。 [samples] ## Note ### 样例解释 - 样例 $1$ 解释:最多可以把字符串分成 $(a)(b)(c)(ab)(ab)(c)(b)(a)$ 共 8 个子串。 - 样例 $2$ 解释:很显然不存在满足题意的分割方案。 - 样例 $3$ 解释:最多可以把字符串分成 $\texttt{(waha)(code)(waha)}$ 共 3 个子串。 ### 数据范围 对于 $30\%$ 的数据,$1\le |S|\le 10$;(其中 $S$ 为给定字符串的长度) 对于 $60\%$ 的数据,$1\le |S |\le 10^3$; 其中有 $30\%$ 的数据,输入的字符串为回文字符串; 对于 $100\%$ 的数据,$1\le| S |\le10^4$,保证输入的字符串全为小写字母。
Samples
Input #1
abcababcba
Output #1
YES 
8
Input #2
goodluckhavefun
Output #2
NO
Input #3
wahacodewaha
Output #3
YES
3
API Response (JSON)
{
  "problem": {
    "name": "[CSP-X2023 山东] 回文字符串",
    "description": {
      "content": " 作为一个新手,小明刚学了回文字符串,知道了一个字符串如果关于中心对称,则该字符串为回文字符串。 于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串 $S$ 是回文字符串: 首先把字符串 $S$ 分割成 $n$ 个子串 $S_1,S_2,\\ldots,S_n$,即 $S_1+S_2+\\ldots+S_n = S$(其中 $+$ 为字符串拼接操作)。 分割成的子串数量需要大于 $",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4101"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "作为一个新手,小明刚学了回文字符串,知道了一个字符串如果关于中心对称,则该字符串为回文字符串。\n\n于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串 $S$ 是回文字符串:\n\n首先把字符串 $S$ 分割成 $n$ 个子串 $S_1,S_2,\\ldots,S_n$,即 $S_1+S_2+\\ldots+S_n = S$(其中 $+$ 为字符串拼接操作)。\n\n分割成的子串数量需要大于 $1...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments