AT_arc084_d.[ARC084F] XorShift

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

黑板上写有 NN 个非负整数。第 ii 个非负整数为 AiA_i。

高桥君可以按照任意顺序执行以下两种操作任意次数:

  1. 选择黑板上写的一个整数,将该整数的 22 倍的新整数添加到黑板上。被选中的整数仍保留在黑板上。
  2. 选择黑板上写的不一定相异的两个整数,将这两个整数的按位异或(bitwise xor)得到的新整数添加到黑板上。被选中的整数仍保留在黑板上。

在黑板上可能出现的整数中,有多少种不超过 XX 的整数?注意,最初写在黑板上的整数也视为可能出现的整数。由于答案可能非常大,请输出其对 998244353998244353 取模的结果。

输入格式

输入通过标准输入给出,格式如下:

NN XX
A1A_1
⋮\vdots
ANA_N

输出格式

输出黑板上可能出现的整数中不超过 XX 的整数的个数,对 998244353998244353 取模的结果。

输入输出样例

  • 输入#1

    3 111
    1111
    10111
    10010

    输出#1

    4
  • 输入#2

    4 100100
    1011
    1110
    110101
    1010110

    输出#2

    37
  • 输入#3

    4 111001100101001
    10111110
    1001000110
    100000101
    11110000011

    输出#3

    1843
  • 输入#4

    1 111111111111111111111111111111111111111111111111111111111111111
    1

    输出#4

    466025955

说明/提示

约束条件

  • 1≤N≤61 \leq N \leq 6
  • 1≤X<240001 \leq X < 2^{4000}
  • 1≤Ai<240001 \leq A_i < 2^{4000}(1≤i≤N1 \leq i \leq N)
  • 输入均为整数
  • XX 和 AiA_i(1≤i≤N1 \leq i \leq N)以二进制形式给出,且最高位为 11

样例解释 #1

初始时,黑板上有 1515、2323 和 1818。在不超过 77 的整数中,可以写出 00、33、55 和 66 这 44 个数。例如,可以通过以下操作写出 66:

  • 将 1515 乘以 22,得到 3030 并写在黑板上
  • 对 3030 和 1818 取异或,得到 1212 并写在黑板上
  • 将 1212 乘以 22,得到 2424 并写在黑板上
  • 对 3030 和 2424 取异或,得到 66 并写在黑板上

样例解释 #4

请输出对 998244353998244353 取模的结果。

翻译由 DeepSeek V3 完成

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

首页