#P13538. [ARC100E] Or Plus Max

    ID: 12722 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 6 上传者: 标签>CF1900动态规划状压DP前缀和枚举队列数学高维前缀和

[ARC100E] Or Plus Max

题目描述

有一个长度为 2N2^N 的整数序列 A0, A1, ..., A2N1A_0,\ A_1,\ ...,\ A_{2^N-1}。(注意下标从 00 开始)

对于所有满足 1K2N11\leq K\leq 2^N-1 的整数 KK,请解决以下问题:

  • i,ji,j 为整数,满足 0i<j2N10\leq i<j\leq 2^N-1,且 (i or j)K(i\ \text{or}\ j)\leq K,求 Ai+AjA_i+A_j 的最大值。这里 oror 表示按位或运算。

输入格式

输入以以下格式从标准输入中给出。

NN A0A_0 A1A_1 ...... A2N1A_{2^N-1}

输出格式

请输出 2N12^N-1 行。第 ii 行输出 K=iK=i 时上述问题的答案。

输入输出样例 #1

输入 #1

2
1 2 3 1

输出 #1

3
4
5

输入输出样例 #2

输入 #2

3
10 71 84 33 6 47 23 25

输出 #2

81
94
155
155
155
155
155

输入输出样例 #3

输入 #3

4
75 26 45 72 81 47 97 97 2 2 25 82 84 17 56 32

输出 #3

101
120
147
156
156
178
194
194
194
194
194
194
194
194
194

说明/提示

限制条件

  • 1N181\leq N\leq 18
  • 1Ai1091\leq A_i\leq 10^9
  • 所有输入均为整数。

样例解释 1

K=1K=1 时,可能的 (i,j)(i,j) 只有 (0,1)(0,1),所以答案为 A0+A1=1+2=3A_0+A_1=1+2=3
K=2K=2 时,可能的 (i,j)(i,j)(0,1),(0,2)(0,1),(0,2)。当 (i,j)=(0,2)(i,j)=(0,2) 时,Ai+Aj=1+3=4A_i+A_j=1+3=4,这是最大值,所以答案为 44
K=3K=3 时,可能的 (i,j)(i,j)(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)。当 (i,j)=(1,2)(i,j)=(1,2) 时,Ai+Aj=2+3=5A_i+A_j=2+3=5,这是最大值,所以答案为 55

由 ChatGPT 4.1 翻译