CF1670F Jee, You See?

题目描述

在为 ICPC 比赛训练时,队伍 "Jee You See" 遇到了一个非常基础的计数问题。在经历了多次“Wrong answer”后,他们最终决定放弃并关掉电脑。现在他们希望你能帮忙解决这个问题。 给定四个整数 $n$、$l$、$r$ 和 $z$,请计算长度为 $n$ 的非负整数数组 $a$ 的个数,满足: - $l \le a_1 + a_2 + \ldots + a_n \le r$; - $a_1 \oplus a_2 \oplus \ldots \oplus a_n = z$,其中 $\oplus$ 表示[按位异或](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)操作。 由于答案可能很大,请输出答案对 $10^9+7$ 取模后的结果。

输入格式

一行包含四个整数 $n$、$l$、$r$、$z$($1 \le n \le 1000$,$1 \le l \le r \le 10^{18}$,$1 \le z \le 10^{18}$)。

输出格式

输出满足所有要求的数组 $a$ 的个数,对 $10^9+7$ 取模。

说明/提示

对于第一个样例,满足条件的数组有: - $[1, 0, 0]$; - $[0, 1, 0]$; - $[3, 2, 0]$; - $[2, 3, 0]$; - $[0, 0, 1]$; - $[1, 1, 1]$; - $[2, 2, 1]$; - $[3, 0, 2]$; - $[2, 1, 2]$; - $[1, 2, 2]$; - $[0, 3, 2]$; - $[2, 0, 3]$; - $[0, 2, 3]$。 对于第二个样例,满足条件的数组有: - $[2, 0, 0, 0]$; - $[0, 2, 0, 0]$; - $[0, 0, 2, 0]$; - $[0, 0, 0, 2]$。 由 ChatGPT 4.1 翻译