本题要求统计长度为 n、每个元素均为小于 2m 的非负整数的稳定序列个数。稳定条件为整体对称差 X=a1⊕a2⊕⋯⊕an 小于等于整体交 Y=a1⊙a2⊙⋯⊙an,其中 ⊕ 为按位异或,⊙ 为按位与。结果对 109+7 取模。
由于每个数都可以看作 m 位的二进制数,我们可以从高到低逐位分析每一位的赋值情况,并考虑 X≤Y 的约束。
记号和每位情况
对于第 b 位(b=m−1,…,0),设序列中所有数在该位的取值为 x1,x2,…,xn∈{0,1}。
小蓝定义了一种非负整数序列的稳定性质。对于两个非负整数,定义按位对称差运算 ⊕ 和按位交运算 ⊙:x⊕y 的结果是将 x 与 y 的二进制表示逐位进行异或;x⊙y 的结果是将 x 与 y 的二进制表示逐位进行与。
给定一个长度为 n 的序列 a1,a2,…,an,定义其整体对称差 X=a1⊕a2⊕⋯⊕an,整体交 Y=a1⊙a2⊙⋯⊙an。若 X≤Y,则称该序列是稳定的。
现在小蓝希望统计所有满足以下条件的稳定序列的数量:每个元素都是小于 2m 的非负整数。由于答案可能很大,请输出结果对 109+7 取模的值。
约束:序列长度 n 满足 1≤n≤105,位宽 m 满足 0≤m≤105。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册