CF1329B.Dreamoon Likes Sequences

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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,md, m, find the number of arrays aa, satisfying the following constraints:

  • The length of aa is nn, n≥1n \ge 1
  • 1≤a1<a2<⋯<an≤d1 \le a_1 \lt a_2 \lt \dots \lt a_n \le d
  • Define an array bb of length nn as follows: b1=a1b_1 = a_1, ∀i>1,bi=bi−1⊕ai\forall i \gt 1, b_i = b_{i - 1} \oplus a_i, where ⊕\oplus is the bitwise exclusive-or (xor). After constructing an array bb, the constraint b1<b2<⋯<bn−1<bnb_1 \lt b_2 \lt \dots \lt b_{n - 1} \lt b_n should hold.

Since the number of possible arrays may be too large, you need to find the answer modulo mm.

Dreamoon 非常喜欢序列,因此他构造了一个你在 OEIS 中找不到的关于序列的问题:

给你两个整数 d,md, m,求满足以下约束的数组 aa 的个数:

  • 数组 aa 的长度为 nn,其中 n≥1n \ge 1;
  • 1≤a1<a2<⋯<an≤d1 \le a_1 \lt a_2 \lt \dots \lt a_n \le d;
  • 定义一个长度为 nn 的数组 bb 如下:b1=a1b_1 = a_1,且对所有 i>1i \gt 1,有 bi=bi−1⊕aib_i = b_{i - 1} \oplus a_i,其中 ⊕\oplus 表示按位异或(xor)运算。在构造出数组 bb 后,需满足 b1<b2<⋯<bn−1<bnb_1 \lt b_2 \lt \dots \lt b_{n - 1} \lt b_n。

由于可能的数组数量可能非常大,你只需输出答案对 mm 取模的结果。

输入格式

The first line contains an integer tt (1≤t≤1001 \leq t \leq 100) denoting the number of test cases in the input.

Each of the next tt lines contains two integers d,md, m (1≤d,m≤1091 \leq d, m \leq 10^9).

Note that mm is not necessary the prime!

第一行包含一个整数 tt(1≤t≤1001 \leq t \leq 100),表示输入中测试用例的数量。

接下来的 tt 行,每行包含两个整数 d,md, m(1≤d,m≤1091 \leq d, m \leq 10^9)。

注意:mm 不一定是质数!

输出格式

For each test case, print the number of arrays aa, satisfying all given constrains, modulo mm.

对于每个测试用例,输出满足所有给定约束条件的数组 aa 的数量对 mm 取模的结果。

输入输出样例

  • 输入#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

输入解题思路,AI测评打分。不知道怎么写?

首页