atcoder#CODEFESTIVAL2017QUALCD. Yet Another Palindrome Partitioning

Yet Another Palindrome Partitioning

配点 : 700700

問題文

英小文字のみからなる文字列 ss があります。 すぬけ君は、ss をいくつかの空でない部分文字列へ分割しようとしています。 分割後の部分文字列を、左から順に s1s_1, s2s_2, ......, sNs_N とします (このとき、s=s1+s2+...+sNs = s_1 + s_2 + ... + s_N です)。 すぬけ君は、次の条件が成り立つように ss を分割しようとしています。

  • ii (1iN1 \leq i \leq N) について、sis_i の文字を並べ替えて回文が得られる。

条件が成り立つように ss を分割するとき、NN の最小値を求めてください。

制約

  • 1s2×1051 \leq |s| \leq 2 \times 10^5
  • ss は英小文字のみからなる。

入力

入力は以下の形式で標準入力から与えられる。

ss

出力

条件が成り立つように ss を分割するとき、NN の最小値を求めよ。

aabxyyzz
2

aabxyyzz = aab + xyyzz と分割すればよいです。 このとき、aab の文字を並べ替えて回文 aba が得られ、xyyzz の文字を並べ替えて回文 zyxyz が得られます。

byebye
1

byebye の文字を並べ替えて回文 byeeyb が得られます。

abcdefghijklmnopqrstuvwxyz
26
abcabcxabcx
3

abcabcxabcx = a + b + cabcxabcx と分割すればよいです。