6_3C 奇怪的开关

6_3C 奇怪的开关

Problem C. 奇怪的开关

时间限制:1000ms

内存限制:128MB

Background

一天小王同学正在熟悉的大街上走着,突然他发现路边多一个房子。好奇的小王刚走了进去,门就关上了。房间里挂着一些灯泡,它们或开或关,每个灯泡下面都有一个开关。单纯的小王以为只要把所有灯泡打开或关闭就可以离开这个房间了,于是他随便按下了一个开关,结果奇怪的是这个开关对应的灯泡没有发生任何事情,反而其它灯泡的状态全部改变了。这时,小王发现进来的门上贴了一张纸条。

Description

纸条的意思是房间一共有 \(n\) 个房间,每个房间都有一些灯泡,状态用 \(0\) 和 \(1\) 表示(\(0\)表示关闭,\(1\)表示打开)。现在每个灯泡都有一个奇怪的开关,按下这个开关除了对应的灯泡其他灯泡都会变成相反的状态。每个房间所有灯泡的状态可以组成一个 \(01\) 串 \(s\) ,只有找到限定操作次数后每个房间 \(s\) 字典序的最大值(定义为 \(maxs\)),才能离开这个房子。看完后小王打算编程解决这个问题。

注:字典序(dictionary order),又称字母序(alphabetical order),原意是表示英文单词在字典中的先后顺序,在计算机领域中扩展成两个任意字符串的大小关系。在字典中,单词是按照首字母在字母表中的顺序进行排列的,比如 alpha 在 beta 之前。而第一个字母相同时,会去比较两个单词的第二个字母在字母表中的顺序,比如 account 在 advanced 之前,以此类推。

Input

第一行一个整数 \(n\) ,代表 \(n\) 个房间。

每个房间的输入有两行。第一行两个整数 \(m\) 和 \(k\) ,\(m\) 表示灯泡总数,\(k\) 表示限定的操作次数;

第二行是一个 \(01\) 串,代表着房间初始灯泡状态。

Output

每个房间输出一个 \(01\) 串,代表题目中定义的 \(maxs\) ,占一行。

Sample Input

4
6 3
100001
4 1
1000
10 4
1001001000
50 14
10101111011110011000110000101010011101010010100110

Sample Output

111110
1111
1111111000
11111111111111111111111111111110011101010010100110

解释:第一个房间其中一种可行的操作方式为 100001 -> \(\color{Red}1\)11110 -> 00000\(\color{Red}0\)-> 11111\(\color{Red}0\)

Data range

对于50% 数据,\(1 \leq \sum m \leq 1000\);
对于 100% 数据,\(1 \leq \sum m \leq 2 \times 10^5\),\(1 \leq n \leq 1000\),\(0 \leq k \leq 2 \times 10^9 \) 。

信息

ID
1409
难度
9
分类
(无)
标签
(无)
递交数
1
已通过
1
通过率
100%
上传者