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%
- 上传者