CSPSMK13B. 异或(xor)

提交1 通过1
通过率100%
文件IO启用
输入文件xor.in
输出文件xor.out
时间限制2000ms
内存限制512MiB
    ID: 14624 传统题 文件IO 输入文件:xor.in 输出文件:xor.out 2000ms 512MiB 尝试: 1 已通过: 1 难度: 提高+/省选- 上传者: 标签>数位 DP容斥原理

题目描述

题目描述

对于非负整数 nn 和 mm,定义 $f(n,m) = \max_{0 \le i \le n,0 \le j \le m} i \oplus j$,其中 ⊕\oplus 表示二进制异或。也就是说,f(n,m)f(n,m) 表示,如果你选择一个 ≤n\le n 的自然数和一个 ≤m\le m 的自然数,他们的二进制异或结果最大为多少。

给定整数 ll、rr、xx、yy,请你求出 ∑i=lr∑j=xyf(i,j)\sum_{i=l}^r \sum_{j=x}^y f(i,j) 对 998244353998244353 取模的值。

由于 l,r,x,yl,r,x,y 可能很大,都以二进制的形式给出。二进制串左侧为高位,右侧为低位,比如 (100)2=4(100)_2 = 4。

注意,二进制串可能有前导 00。

输入格式

第一行一个正整数 LL,表示后续四个二进制串的长度。

接下来四行,每行一个长为 LL 的二进制串,分别表示 ll、rr、xx 和 yy。保证 l≤rl \le r 且 x≤yx \le y。

输出格式

一行一个整数,表示所求的值。

输入样例 #1

3
000
010
000
010

输出样例 #1

16

输入样例 #2

12
000000101010
111111111111
000000000111
111111101111

输出样例 #2

374883400

说明提示

对于所有的数据,1≤L≤5×1051 \le L \le 5 \times 10^5。

测试点编号 L≤L \le 特殊性质
1∼61 \sim 6 77 无
7∼107 \sim 10 1414
11∼1411 \sim 14 2×1052 \times 10^5 (r−l+1)(y−x+1)≤106(r-l+1)(y-x+1) \le 10^6
15,1615,16 10310^3 无
17,1817,18 2×1052 \times 10^5
19,2019,20 5×1055 \times 10^5

本站补充:原套别:第 13 套 B 题。