0%

ELMO 2017 Shortlist C3

To soar above this world

ELMO 2017 Shortlist C3 Binary String

Consider a finite binary string b with at least 2017 ones. Show that one can insert some plus signs in between pairs of digits such that the resulting sum, when performed in base 2, is equal to a power of two.

Source : ELMO-2017-SL

Proof :

记二进制串里 11 的个数有 nn 个,则对于 n17n\ge17 都成立

所有 [n,3n2][n,\dfrac{3n}{2}] 的数都可以表示出来

先在每一个字符后面都加上加号,这样总和为 nn ,每次选取一个单独的 11 取消它后面的加号,要求他后面也是个单独的 0011

这样每操作一次会 1+2=+1-1+2=+1 的增量,最坏的情况是 111111111111 只能操作 n2\dfrac{n}{2} 次,所以 [n,3n2][n,\dfrac{3n}{2}] 一定可以被表示

那如果存在 2k[n,3n2]2^{k} \in [n,\dfrac{3n}{2}] 就解决了

否则一定有 2k+1n2k+232^k+1\le n \le \dfrac{2^{k+2}}{3}

先切断最后的四个 11 ,只考虑前面

那现在我们从左到右划分,找到一个 11 就把他和他后面的两个位置连起来成一组

最终会形成 gg 个组的和 ll 个未划分的,未划分的只能是末尾有两个 11 所以 l2l \le 2g4g \ge4

而一组的和可能是 7,6,5,47,6,5,4 之一,发现不管怎样,这些和都大于等于原来各自贡献 vv2v+12v+1

所以最终的总和至少是 2(nl4)+g+l+4=2nl4+g2(n-l-4)+g+l+4=2n-l-4+g

2(nl4)+g2(n-l-4)+g 是划分的组中 11 的总贡献 +l+4+l+4 是未划分的部分,因为 l2l \le2g4g \ge 4 总有 2nl4+g2n22k+12n-l-4+g \ge 2n-2 \ge2^{k+1}

这样只要当和超过了 2k+12^{k+1} 时候就停下,如果刚好等于就结束,否则考虑减去刚划分的组 1a1a24+2a1+a31a_1a_2 \rightarrow 4+2a_1+a_3

和会是 2k+11,2k+12,2k+132^{k+1}-1,2^{k+1}-2,2^{k+1}-3 中的一个

如果是 2k+132^{k+1}-3 ,那就是把 1+a11+a_1 变成 1a11a_1 总和增加了 11 ,然后拿出来末尾的四个 11,把他们的总和从 44 变成 66 ,因为 6[4,3×42]6 \in [4,\dfrac{3\times4}{2}] 所以一定能调整到

如果是 2k+122^{k+1}-2 或者 2k+112^{k+1}-1 直接调整末尾的 4411 即可

实际上这个结论对 n16n \le 16 的部分也成立

因为 [1,16][1,16][n,3n2][n,\dfrac{3n}{2}] 中没有 22 的整次幂的只有 5,9,135,9,13 他们最多能取到 7,13,157,13,15

如果 00 隔开 11 的段数多于 n2\lfloor\dfrac{n}{2}\rfloor 就可以多调整几次调整为整次幂

否则的话情况不多,可以暴力枚举