AT_utpc2023_c.Contour Multiplication

通过率:0%

AC君温馨提醒

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

题目描述

有一个长度为 2N2^N 的数列 (A0,A1,…,A2N−1)(A_0, A_1, \dots, A_{2^N-1}),初始时 A0=A1=⋯=A2N−1=1A_0=A_1=\dots=A_{2^N-1}=1。

有 KK 次操作。第 ii 次操作,会令所有满足 popcount(j⊕Ci)=Di\mathrm{popcount}(j \oplus C_i) = D_i 的 j (0≤j<2N)j \ (0 \leq j < 2^N),将 AjA_j 替换为 (Aj×Xi) mod M(A_j \times X_i)\bmod M。

请输出经过所有操作之后的 A0,A1,…,A2N−1A_0, A_1, \dots, A_{2^N-1}。

其中,popcount(X)\mathrm{popcount}(X) 表示非负整数 XX 的二进制表示中 11 的个数。

位运算 XOR\mathrm{XOR}(⊕\oplus)对非负整数 A,BA, B 的定义为:将 AA 和 BB 的二进制表示对应位进行异或操作,得到的第 2k2^k 位为 AA 和 BB 的该位若只有一个为 11 则为 11,否则为 00。

例如:3⊕5=63 \oplus 5 = 6,因二进制 011⊕101=110011 \oplus 101 = 110。

输入格式

输入按以下格式从标准输入给出:

NN MM KK
C1C_1 D1D_1 X1X_1
C2C_2 D2D_2 X2X_2
⋮\vdots
CKC_K DKD_K XKX_K

输出格式

请将 A0,A1,…,A2N−1A_0, A_1, \dots, A_{2^N-1} 以空格分隔,输出在一行中。

输入输出样例

  • 输入#1

    3 100 2
    0 2 4
    3 0 25

    输出#1

    1 1 1 0 1 4 4 1
  • 输入#2

    4 998244353 7
    0 2 4
    3 0 25
    9 4 37
    4 1 16
    6 3 8
    1 4 68
    13 3 97

    输出#2

    1552 8 1 9700 1 64 229696 1 8 4 388 8 64 8 68 1

说明/提示

样例解释 1

第 11 次操作,A3,A5,A6A_3, A_5, A_6 都会变为 1×4 mod 100=41\times 4\bmod 100=4。

第 22 次操作,A3A_3 会被变为 4×25 mod 100=04\times 25 \bmod 100=0。

数据范围

  • 所有输入均为整数。
  • 1≤N≤181 \leq N \leq 18
  • 2≤M≤1092 \leq M \leq 10^9
  • 1≤K≤5×1051 \leq K \leq 5\times 10^5
  • 0≤Ci<2N0 \leq C_i < 2^N
  • 0≤Di≤N0 \leq D_i \leq N
  • 2≤Xi≤1092 \leq X_i \leq 10^9

由 ChatGPT 5 翻译

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

首页