稳重银耳汤

文章
5
资源
0
加入时间
2年10月17天

D. AND, OR and square sum

题意:给你n个数,我们可以每次执行的操作是:选择两个下标i,j,a[i]=a[i]&a[j],a[j]=a[i]^a[j],可以进行无数次操作,求最后的所有数的平方和最大是多少。思路:设a[i]=x,a[j]=y,我们可以发现x+y==x&y+x^y,可以发现两个数当和一定的时候我们将其中一个数构造的最大的平方和是所有情况里和最大的。比如:x==101,y=110时,我们可以发现把x换成111,y换成100时的两个数的平方和最大。那么我们只需要统计一下二进制每位上的1的个数,