AT_code_festival_2017_qualc_d Yet Another Palindrome Partitioning

题目描述

给定一个字符串$\texttt{s}$,把$\texttt{s}$分成$N$个子串,要求每个子串中的字母经过一定的移动,会变成一个回文串(如`aab`经过一定的移动,变成了`aba`,`aba`是一个回文串),**且$N$最少**。

输入格式

一个字符串$\texttt{s}$($1 \le \texttt{|s|} \le 2 \times 10^5$)

输出格式

一个正整数$N$,表示最少的子串个数。

说明/提示

### 制約 - $ 1\ \leq\ |s|\ \leq\ 2\ \times\ 10^5 $ - $ s $ は英小文字のみからなる。 ### Sample Explanation 1 `aabxyyzz` = `aab` + `xyyzz` と分割すればよいです。 このとき、`aab` の文字を並べ替えて回文 `aba` が得られ、`xyyzz` の文字を並べ替えて回文 `zyxyz` が得られます。 ### Sample Explanation 2 `byebye` の文字を並べ替えて回文 `byeeyb` が得られます。 ### Sample Explanation 4 `abcabcxabcx` = `a` + `b` + `cabcxabcx` と分割すればよいです。