Codeforces Global Round 8-D. AND, OR and square sum(位运算,贪心)
题目链接
题意:
给你一个数组,你可以从中任选两个数使得x=x&y,y=x|y,该操作可以执行无数次,求数组中每一位数的平方和的最大值。
思路:
如果我们多尝试几个例子你会发现,两个数经过上述位运算之后二进制的1的个数并不会改变,所以我们可以经过无数次的位运算操作之后将每一位的1转移到能转移到的最大的数的位置,最后得到的数组就是结果。
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#defin
原创
2020-07-08 20:31:56 ·
161 阅读 ·
0 评论