AT_arc141_b.[ARC141B] Increasing Prefix XOR

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

给定正整数 N, MN,\ M。

请计算满足以下条件的长度为 NN 的正整数序列 A=(A1, A2, …, AN)A=(A_1,\ A_2,\ \dots,\ A_N) 的个数,并将结果对 998244353998244353 取模后输出。

  • 1≤A1<A2<⋯<AN≤M1\leq A_1< A_2< \dots< A_N\leq M
  • 设 Bi=A1⊕A2⊕⋯⊕AiB_i = A_1\oplus A_2\oplus \dots\oplus A_i,则 B1<B2<⋯<BNB_1< B_2< \dots< B_N

其中,⊕\oplus 表示按位异或(XOR)运算。

按位异或(XOR)运算的定义如下:对于非负整数 A, BA,\ B,A⊕BA\oplus B 的二进制表示中,每一位 2k2^k(k≥0k\geq 0)上的数字,如果 AA 和 BB 的该位中恰有一个为 11,则结果为 11,否则为 00。

例如,3⊕5=63\oplus 5=6(二进制表示为:011⊕101=110011\oplus 101=110)。
一般来说,kk 个非负整数 p1, p2, p3, …, pkp_1,\ p_2,\ p_3,\ \dots,\ p_k 的按位异或为 (…((p1⊕p2)⊕p3)⊕⋯⊕pk)(\dots((p_1\oplus p_2)\oplus p_3)\oplus\dots\oplus p_k),并且可以证明其结果与顺序无关。

输入格式

输入从标准输入读取,格式如下:

NN MM

输出格式

请输出答案。

输入输出样例

  • 输入#1

    2 4

    输出#1

    5
  • 输入#2

    4 4

    输出#2

    0
  • 输入#3

    10 123456789

    输出#3

    205695670

说明/提示

限制条件

  • 1≤N≤M<2601\leq N\leq M<2^{60}
  • 输入的所有数均为整数

样例解释 1

例如,当 (A1,A2)=(1,3)(A_1, A_2) = (1, 3) 时,A1<A2A_1 < A_2,且 B1=A1=1, B2=A1⊕A2=2B_1 = A_1 = 1,\ B_2 = A_1\oplus A_2 = 2,因此 B1<B2B_1 < B_2,满足条件。除此之外,(A1,A2)=(1,2), (1,4), (2,4), (3,4)(A_1, A_2) = (1, 2),\ (1, 4),\ (2, 4),\ (3, 4) 也满足条件。

由 ChatGPT 4.1 翻译

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

首页