CF1493E Enormous XOR

题目描述

给定两个以二进制表示的整数 $l$ 和 $r$。令 $g(x, y)$ 表示从 $x$ 到 $y$(包括 $x$ 和 $y$)所有整数的按位异或(即 $x \oplus (x+1) \oplus \dots \oplus (y-1) \oplus y$)。定义 $f(l, r)$ 为所有满足 $l \le x \le y \le r$ 的 $g(x, y)$ 的最大值。 请输出 $f(l, r)$。

输入格式

第一行包含一个整数 $n$($1 \le n \le 10^6$),表示 $r$ 的二进制表示的长度。 第二行包含 $l$ 的二进制表示——一个长度为 $n$ 的仅由 $0$ 和 $1$ 组成的字符串($0 \le l < 2^n$)。 第三行包含 $r$ 的二进制表示——一个长度为 $n$ 的仅由 $0$ 和 $1$ 组成的字符串($0 \le r < 2^n$)。 保证 $l \le r$。$r$ 的二进制表示不包含多余的前导零(如果 $r=0$,其二进制表示为单个零)。$l$ 的二进制表示会补前导零,使其长度等于 $n$。

输出格式

输出一行,表示给定 $l$ 和 $r$ 时 $f(l, r)$ 的值,要求以二进制表示且不含多余的前导零。

说明/提示

在样例测试中,$l=19$,$r=122$。$f(x, y)$ 的最大值为 $127$,例如当 $x=27$,$y=100$ 时可以取得。 由 ChatGPT 4.1 翻译