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:
3
1.挑出1个元素,即k=1,max(1,k-2)=1
2(10)
对应结果2^1=2
1(1)
对应结果2^0=1
3(11)
对应结果2^1+2^0=3
2.挑出2个元素,即k=2,max(1,k-2)=1
2(10),1(01)
对应结果2^1+2^0=3
2(10),3(11)
对应结果2^1+2^0=3
1(01),3(11)
对应结果2^1+2^0=3
3.挑出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是选择数量最丰富的情况,最大值一定发生在其中。