307260: CF1329B. Dreamoon Likes Sequences

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Dreamoon Likes Sequences

题意翻译

### 题目描述 Dreamoon 非常喜欢数列。因此他出了一道数列问题,保证你在 OEIS 上找不到它。 有两个整数 $d, m$,找到这样的数列 $a$ 的数列,满足以下限制条件: - 数列 $a$ 的长度为 $n$,$n \ge 1$; - $1 \le a_i \lt a_2 \lt \cdots \lt a_n \le d$; - 定义一个长度为 $n$ 的数组 $b$:$b_1 = a_1$,$\forall i \ge 1, b_i = b_{i - 1} \oplus a_i$,其中 $\oplus$ 表示二进制异或 (xor)。在构建出 $b$ 后,应当满足 $b_1 \lt b_2 \lt \cdots \lt b_{n - 1} \lt b_n$ 的限制条件。 由于满足条件的数列数量可能很多,请输出答案模 $m$ 的结果。 ### 输入格式 第一行输入一个整数 $t ~ (1 \le t \le 100)$,表示测试数据组数。 接下来 $t$ 行,每行输入两个整数 $d, m ~ (1 \le d, m \le 10 ^ 9)$。 注意 $m$ 不一定是一个质数! ### 输出格式 对于每组测试数据,输出满足条件的数列 $a$ 的个数,对 $m$ 取模的结果。

题目描述

Dreamoon likes sequences very much. So he created a problem about the sequence that you can't find in OEIS: You are given two integers $ d, m $ , find the number of arrays $ a $ , satisfying the following constraints: - The length of $ a $ is $ n $ , $ n \ge 1 $ - $ 1 \le a_1 < a_2 < \dots < a_n \le d $ - Define an array $ b $ of length $ n $ as follows: $ b_1 = a_1 $ , $ \forall i > 1, b_i = b_{i - 1} \oplus a_i $ , where $ \oplus $ is the bitwise exclusive-or (xor). After constructing an array $ b $ , the constraint $ b_1 < b_2 < \dots < b_{n - 1} < b_n $ should hold. Since the number of possible arrays may be too large, you need to find the answer modulo $ m $ .

输入输出格式

输入格式


The first line contains an integer $ t $ ( $ 1 \leq t \leq 100 $ ) denoting the number of test cases in the input. Each of the next $ t $ lines contains two integers $ d, m $ ( $ 1 \leq d, m \leq 10^9 $ ). Note that $ m $ is not necessary the prime!

输出格式


For each test case, print the number of arrays $ a $ , satisfying all given constrains, modulo $ m $ .

输入输出样例

输入样例 #1

10
1 1000000000
2 999999999
3 99999998
4 9999997
5 999996
6 99995
7 9994
8 993
9 92
10 1

输出样例 #1

1
3
5
11
17
23
29
59
89
0

Input

题意翻译

### 题目描述 Dreamoon 非常喜欢数列。因此他出了一道数列问题,保证你在 OEIS 上找不到它。 有两个整数 $d, m$,找到这样的数列 $a$ 的数列,满足以下限制条件: - 数列 $a$ 的长度为 $n$,$n \ge 1$; - $1 \le a_i \lt a_2 \lt \cdots \lt a_n \le d$; - 定义一个长度为 $n$ 的数组 $b$:$b_1 = a_1$,$\forall i \ge 1, b_i = b_{i - 1} \oplus a_i$,其中 $\oplus$ 表示二进制异或 (xor)。在构建出 $b$ 后,应当满足 $b_1 \lt b_2 \lt \cdots \lt b_{n - 1} \lt b_n$ 的限制条件。 由于满足条件的数列数量可能很多,请输出答案模 $m$ 的结果。 ### 输入格式 第一行输入一个整数 $t ~ (1 \le t \le 100)$,表示测试数据组数。 接下来 $t$ 行,每行输入两个整数 $d, m ~ (1 \le d, m \le 10 ^ 9)$。 注意 $m$ 不一定是一个质数! ### 输出格式 对于每组测试数据,输出满足条件的数列 $a$ 的个数,对 $m$ 取模的结果。

加入题单

算法标签: