#Z01890. 反向排序

    ID: 1717 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>程序设计基础期末C卷 二进制🔨传统题

反向排序

题目描述

Bob有一个长度为n的二进制数s,现在他想对此二进制数进行以下操作,使得二进制转为十进制后的数字最小。如果有多种操作方法能得到这个最小值,则取操作次数最小的方法。

		操作一:选取二进制中的一串子序列(子序列长度要尽可能小),对此进行降序操作。
	
	
		操作二:选取二进制中的一串子序列(子序列长度要尽可能小),对此进行翻转操作。

输入格式

第一行输入一个正整数 t ( 1

每个测试用例输入两行


第一行输入一个正整数 n ( 1 

第二行输入一行长度为 n 的二进制字符串 s , 其中只包含 0 和 1

输出格式

第一行输出选取方案的操作次数

		第二行先输出操作的子序列长度,紧跟在后输出操作的子序列在 s 中的各个字符位置
3
7
0011111
5
10100
6
001000
0
1
4 1 3 4 5
1
2 3 6