二分答案地算一下这个最大值最小可以是多少。接着直接模拟地构造就行。
C++ 二分版本 (from 2333)
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx,avx2,fma")
给定一个由字符 '0' 和 '1' 组成的字符串,代表每个位置上的两种不同类型。你需要为每个位置分配一个小写字母作为标记,规定同一个字母只能分配给类型完全相同的位置——即某个字母一旦用于 '0' 的位置,就不能出现在任何 '1' 的位置上,反之亦然。
在所有分配方案中,你希望让出现次数最多的那个字母的出现次数尽可能小。请找出并输出一个达到该最小值要求的分配方案。如果有多个合法方案,输出任意一个即可。
字符串的长度不超过 2×105。
In following contests:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册