AT_utpc2022_m.Minimize XOR by Redistribution

通过率:0%

AC君温馨提醒

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

题目描述

对于长度为 nn 的非负整数列 X=(X1,X2,…,Xn)X=(X_1, X_2, \dots, X_n),定义 f(X)f(X) 为所有满足 Y1+Y2+⋯+Yn=X1+X2+⋯+XnY_1+Y_2+\dots+Y_n=X_1+X_2+\dots+X_n 的长度为 nn 的非负整数列 Y=(Y1,Y2,…,Yn)Y=(Y_1, Y_2, \dots, Y_n) 中,Y1⊕Y2⊕⋯⊕YnY_1 \oplus Y_2 \oplus \dots \oplus Y_n (其中 ⊕\oplus 表示按位异或运算)的最小值。

给定一个长度为 NN 的非负整数列 A=(A1,A2,…,AN)A=(A_1, A_2, \dots, A_N)。AA 的非空子序列 BB 一共有 2N−12^N-1 个。对于所有子序列 BB,求 ∑f(B)\sum f(B) 并对 998244353998244353 取模后的结果。

这里按位异或运算(XOR\mathrm{XOR})是这样定义的:对于非负整数 A,BA, B,A⊕BA \oplus B 取二进制表示时,每一位 2k2^k(k≥0k\geq0)的值,当且仅当 A,BA, B 在该位上有且仅有一个 11 时该位为 11,否则为 00。

例如,3⊕5=63 \oplus 5 = 6(因为 011⊕101=110011 \oplus 101 = 110)。
一般情况下,kk 个非负整数 p1,p2,…,pkp_1, p_2, \dots, p_k 的按位异或为 (…((p1⊕p2)⊕p3)⊕⋯⊕pk)(\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k),并且顺序不影响结果。

输入格式

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

NA1A2…ANN \quad A_1 \quad A_2 \quad \dots \quad A_N

输出格式

请输出一行,表示答案。

输入输出样例

  • 输入#1

    3
    0 1 2

    输出#1

    8
  • 输入#2

    15
    99412 355422 750910 993699 41414 435678 325371 637849 939332 512546 112254 175315 865362 459658 311661

    输出#2

    7032514

说明/提示

样例说明 1

AA 的所有非空子序列 BB 包括 B=(0),(1),(2),(0,1),(0,2),(1,2),(0,1,2)B=(0), (1), (2), (0,1), (0,2), (1,2), (0,1,2) 共 77 个。

比如 B=(0,2)B=(0,2) 时,1+1=0+2, 1⊕1=01+1=0+2,\ 1 \oplus 1 = 0,因此 f(B)=0f(B)=0。

对上述 77 个 AA 的子序列分别计算 f(B)f(B),依次为 0,1,2,1,0,3,10, 1, 2, 1, 0, 3, 1,所以答案为 0+1+2+1+0+3+1=80+1+2+1+0+3+1=8。

数据范围

  • 输入均为整数
  • 1≤N≤20001 \leq N \leq 2000
  • 0≤Ai<2200 \leq A_i < 2^{20}

由 ChatGPT 5 翻译

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

首页