#LQ1435. 反异或01串

反异或01串

问题描述

初始有一个空的 01 串,每步操作可以将 01 添加在左侧或右侧。也可以对整个串进行反异或操作:取 s=srev(s)s′=s⊕rev(s),其中 ss 是目前的 01 串, 表示逐位异或,rev(s)rev(s) 代表将 ss 翻转,也就是说取中心位置并交换所有对称的两个位置的字符。例如,rev(0101)=1010rev(0101)=1010rev(010)=010rev(010)=010rev(0011)=1100rev(0011)=1100

反异或操作最多使用一次(可以不用,也可以用一次)。

给定一个 01TT,问最少需要添加多少个 1 才能从一个空 01 串得到 TT

在本题中 0 可以添加任意个。

输入格式

输入一行包含一个 01 串表示给定的 TT

输出格式

输出一行包含一个整数,表示需要最少添加多少个 1

样例

00111011
3

评测用例规模与约定

对于 20%20\% 的评测用例,T10∣T∣≤10

对于 40%40\% 的评测用例,T500∣T∣≤500

对于 60%60\% 的评测用例,T5000∣T∣≤5000

对于 80%80\% 的评测用例,T105∣T∣≤10^5

对于所有评测用例,1T1061≤∣T∣≤10^6,保证 TT 中仅含 01