安排二进制字符串以在索引C / C ++的范围内获得最大值?
在给定的字符串仅包含0和1的情况下,我们为M个不相交的范围A,B(A<=B),更具体地说是[A1,B1],[A2,B2],…,[AM,BM],这些间隔中的任何两个都不重叠-形式上,在每个有效i,j的情况下,使得i!=j,或者Ai<Bj或Bj<Ai。
该活动是为了找到合法或有效的排列,该排列将同时满足以下两个条件:
所有M个给定范围之间的数字总和将最大。
该字符串在字典上最大。字符串1100在字典上比字符串1001高。
例子
Input 11100 3 3 4 5 5 Output 00111 First we put 1’s in position 3 and 4 then in 5 as there are no 1’s left, the string formed is 00111. Input 0000111 2 1 1 1 2 Output 1110000
在上面的示例中,我们首先将1置于第一和第二位置,然后再剩下一个“1”,
因此,我们使用它在字典上最大化了字符串,并将其放在第3个位置,从而完成了重新排列。
热门推荐
10 五一公司放假祝福语简短
11 追星女孩的祝福语简短
12 给长辈端午祝福语 简短
13 生日祝福语有诗意简短
14 团圆日祝福语简短
15 中秋商务祝福语简短最新
16 温暖文艺简短祝福语短句
17 男孩上学祝福语简短的
18 入住酒店文案祝福语简短