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。
这里定义子序列是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