題目描述
位運算是乙個非常重要的東西。而小a最近在學習位運算,小a看到了一道很簡單的例題,是說從n個數裡面選出n-1個數要讓它們或起來的值最大,小a想知道這個答案是多少。你可以幫幫他嗎?
輸入描述:
第一行乙個整數n表示有n個數接下來一行n個數表示a1,a2…an
輸出描述:
一行輸出個結果代表最大值
示例1輸入
51 2 4 8 16
輸出30
說明選擇2,4,8,16或的和是最大的,沒有比這個更大的方案。
備註:1≤n≤5e6,1≤ai≤1e9
思路:直接或就完事了,,,先打出乙個2^k次方的表,判斷是否n個數中是否包含n個2 ^k(0<=k<=31),因為2 ^ 31次方已經大於了le9,,,所以。。。
//#include
#include
#include
#include
#include
#include
#include
#include
using namespace std ;
typedef
long
long ll;
#define maxn 1000005
#define inf 0x3f3f3f3f
#define mall (endtree *)malloc(sizeof(endtree));
int al[35]
;int a[maxn]
;int
main()
memset
(a,0
,sizeof
(a))
; ll n, sum=
0, tem=
0, y=
0, cc=0;
cin >> n;
for(
int i=
0; i++i)
sum|
=a[i];}
if(y == n)
cout << sum-
1<<
'\n'
;else
cout << sum <<
'\n'
;return0;
}
牛客小白月賽13 D題
位運算是乙個非常重要的東西。而小a最近在學習位運算,小a看到了一道很簡單的例題,是說從n個數裡面選出n 1個數要讓它們或起來的值最大,小a想知道這個答案是多少。你可以幫幫他嗎?思路 預處理了一下字首l陣列和字尾r陣列,然後列舉那個不選的數就可以了,每次更新ans max ans,l i 1 r i ...
牛客網小白月賽D
題目 水果店裡有 n個水果排成一列。店長要求顧客只能買一段連續的水果。小陽對每個水果都有乙個喜愛程度 ai,最終的滿意度為他買到的水果的喜歡程度之和。如果和為正 不管是正多少只要大於 0 即可 他就滿意了。小陽想知道在他滿意的條件下最多能買多少個水果。你能幫幫他嗎?輸入描述 第一行輸入乙個正整數 n...
牛客小白月賽13 補題(ACDG)
a 通過已經給的 打表找規律,偶數輸出 1,奇數輸出1 includeusing namespace std int main void huaj ll a,ll b int main qianz 0 0 houz n 1 0 qianz 1 mp 1 houz n mp n for i 2 i n...