1335: 01串

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:79 解决:22

题目描述

给你一个字符串,长度为n,只有0和1组成,简称01串。我们可以在串中选择一个起点和终点进行区间翻转,即区间中的0变成1,1变成0。翻转后得到了一个新的01串。且要求翻转后得到的新的01串中的01子序列最长。
这里定义子序列是01间隔的。(子序列就是在原来序列中找出一部分(可以不连续)组成的序列)。
比如000100010 这个串中01间隔的子序列的长度为5.即01010
比如1011。最长子序列长度为3,即101。

比如1101101 最长子序列长度为5。即10101。

举个栗子:
长度为8的10000011,可以变成10111011或10100011或10110011等等,翻转后最长长度为5,即10101。
长度为2的10,可以翻转整个串,变为01,子串最长长度为2

输入

第一行:T,测试实例个数

第二行:一个n表示01串的长度。(1≤n≤10000)

第三行:输入一个01串。

输出

一个整数,表示翻转后最长子序列的长度。

样例输入 复制

1
8
10000011

样例输出 复制

5