牛客练习赛67 B. 牛牛爱位运算
牛牛爱位运算
https://ac.nowcoder.com/acm/contest/6885/B
Description
他刚刚理解&的用法(and),准备趁热打铁,做做下面这题:
给定一个长度为n的序列a,你需要从中挑出任意多个(可以0个)数,使得他们&起来值最大。
看起来挺简单的,可是牛牛就是不会做。
比如说选出五个数1,3,5,7,9,他们&起来的值就是1&3&5&7&9=1
Solution
找最大值,多个数字相互做按位与,结果 <= 原来的数字。
Code
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int a[N];
int main() {
int T; cin >> T;
while(T--) {
int n; cin >> n;
for(int i = 1; i <= n; i++) {
cin >> a[i];
}
sort(a + 1, a + 1 + n);
cout << a[n] << "\n";
}
return 0;
} 
