[codeforces 1365E] Maximum Subsequence Value 或运算+为什么选三个元素对应最大值

【[codeforces 1365E] Maximum Subsequence Value 或运算+为什么选三个元素对应最大值】Codeforces Round #648 (Div. 2)参与排名人数13231
[codeforces 1365E]Maximum Subsequence Value或运算+为什么选三个元素对应最大值
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址https://codeforces.com/contest/1365/problem/E

Problem Lang Verdict Time Memory
E - Maximum Subsequence Value GNU C++17 Accepted 46 ms 200 KB
题目大意:在数组a中挑出k个数,组成新的数组,将新的数组中的每个数,化成二进制,若第i位上数字是1的元素数量大于等于max(1,k-2),那么该位计算出2^i参与求和,求选出的新数组对应的最大和。
进一步题意说明,样例模拟如下
Input: 3 2 1 3 Output: 31.挑出1个元素,即k=1,max(1,k-2)=1 2(10) 对应结果2^1=21(1) 对应结果2^0=13(11) 对应结果2^1+2^0=32.挑出2个元素,即k=2,max(1,k-2)=1 2(10),1(01) 对应结果2^1+2^0=32(10),3(11) 对应结果2^1+2^0=31(01),3(11) 对应结果2^1+2^0=33.挑出3个元素,即k=3,max(1,k-2)=1 2(10),1(01),3(11) 对应结果2^1+2^0=3综合所有情况,最大和值是3

思路:
n==1,输出a[1]
n==2,输出a[1]|a[2]
n>=3,
输出a[i]|a[j]|a[k],因为max(1,K-2),K==3时,max(1,K-2)=1,能保证a[i],a[j],a[k]都被选中,
K==4时,max(1,K-2)=2,至少要有2个数组元素在同一位上雷同,该位才能选择有效,明显选择范围相比K==3更狭窄了。
K==5时,max(1,K-2)=3,至少要有3个数组元素在同一位上雷同,该位才能选择有效,明显选择范围相比K==3更狭窄了。
......
综上,K==3是选择数量最丰富的情况,最大值一定发生在其中。

    推荐阅读