AT_arc151_d.[ARC151D] Binary Representations and Queries

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 2N2^N 的整数序列 A=(A0,A1,…,A2N−1)A = (A_0, A_1, \ldots, A_{2^N-1})。

同时给出 QQ 个查询。对于第 ii 个查询(i=1,2,…,Qi = 1, 2, \ldots, Q),给定两个整数 XiX_i 和 YiY_i,执行以下操作:

按顺序对 j=0,1,2,…,2N−1j = 0, 1, 2, \ldots, 2^N-1 执行以下步骤:

  1. 首先,将 jj 的 NN 位二进制表示记为 bN−1bN−2…b0b_{N-1}b_{N-2}\ldots b_0。然后,通过反转 bXib_{X_i}(00 变为 11,11 变为 00)得到一个新的二进制表示,并将其对应的整数记为 j′j'。
  2. 如果 bXi=Yib_{X_i} = Y_i,则将 AjA_j 的值加到 Aj′A_{j'} 上。

请输出所有查询按给定顺序执行后,AA 中每个元素对 998244353998244353 取模的结果。

关于 NN 位二进制表示的定义:非负整数 XX(0≤X<2N0 \leq X < 2^N)的 NN 位二进制表示是唯一满足以下条件的长度为 NN 的 00 和 11 组成的序列 bN−1bN−2…b0b_{N-1}b_{N-2}\ldots b_0:

  • ∑i=0N−1bi⋅2i=X\sum_{i=0}^{N-1} b_i \cdot 2^i = X

输入格式

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

NN QQ
A0A_0 A1A_1 …\ldots A2N−1A_{2^N-1}
X1X_1 Y1Y_1
X2X_2 Y2Y_2
⋮\vdots
XQX_Q YQY_Q

输出格式

对于 i=0,1,…,2N−1i = 0, 1, \ldots, 2^N-1,输出所有查询执行后 AiA_i 对 998244353998244353 取模的结果 Ai′A'_i,用空格分隔:

A0′A'_0 A1′A'_1 …\ldots A2N−1′A'_{2^N-1}

输入输出样例

  • 输入#1

    2 2
    0 1 2 3
    1 1
    0 0

    输出#1

    2 6 2 5
  • 输入#2

    3 10
    606248357 338306877 919152167 981537317 808873985 845549408 680941783 921035119
    1 1
    0 0
    0 0
    0 0
    0 1
    0 1
    0 1
    2 0
    2 0
    2 0

    输出#2

    246895115 904824001 157201385 744260759 973709546 964549010 61683812 205420980

说明/提示

约束条件

  • 1≤N≤181 \leq N \leq 18
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • 0≤Ai<9982443530 \leq A_i < 998244353
  • 0≤Xi≤N−10 \leq X_i \leq N-1
  • Yi∈{0,1}Y_i \in \{0, 1\}
  • 所有输入均为整数

样例解释 #1

第一个查询的操作如下:

  • 当 j=0j=0 时,b1b0=00b_1b_0=00,j′=2j'=2。由于 b1≠1b_1 \neq 1,不执行加法。
  • 当 j=1j=1 时,b1b0=01b_1b_0=01,j′=3j'=3。由于 b1≠1b_1 \neq 1,不执行加法。
  • 当 j=2j=2 时,b1b0=10b_1b_0=10,j′=0j'=0。由于 b1=1b_1=1,将 A2A_2 加到 A0A_0 上,AA 变为 (2,1,2,3)(2,1,2,3)。
  • 当 j=3j=3 时,b1b0=11b_1b_0=11,j′=1j'=1。由于 b1=1b_1=1,将 A3A_3 加到 A1A_1 上,AA 变为 (2,4,2,3)(2,4,2,3)。

第二个查询的操作如下:

  • 当 j=0j=0 时,b1b0=00b_1b_0=00,j′=1j'=1。由于 b0=0b_0=0,将 A0A_0 加到 A1A_1 上,AA 变为 (2,6,2,3)(2,6,2,3)。
  • 当 j=1j=1 时,b1b0=01b_1b_0=01,j′=0j'=0。由于 b0≠0b_0 \neq 0,不执行加法。
  • 当 j=2j=2 时,b1b0=10b_1b_0=10,j′=3j'=3。由于 b0=0b_0=0,将 A2A_2 加到 A3A_3 上,AA 变为 (2,6,2,5)(2,6,2,5)。
  • 当 j=3j=3 时,b1b0=11b_1b_0=11,j′=2j'=2。由于 b0≠0b_0 \neq 0,不执行加法。

最终 AA 的结果为 (2,6,2,5)(2,6,2,5)

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

首页