首页 > 其他 > 详细

loj 113 最大异或和

时间:2020-02-09 18:08:23      阅读:72      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

线性基入门题:  

技术分享图片
 1 #include<bits/stdc++.h>
 2 using namespace std;  
 3 #define ll long long  
 4 int n;  
 5 ll d[60];  
 6 void insert(ll x){
 7   for(int i=50;i>=0;i--){
 8     if(x&(1LL<<i)){
 9       if(!d[i]) {
10         d[i]=x; 
11         break;  
12       }else x^=d[i];  
13     }
14   }
15 }
16 int main(){
17   scanf("%d",&n);  
18   for(int i=0;i<n;i++){
19     ll x;  
20     scanf("%lld",&x);  
21     insert(x);  
22   }
23   ll ans=0; 
24   for(int i=50;i>=0;i--)  
25     if((ans^d[i])>ans)  ans^=d[i];  
26   printf("%lld\n",ans); 
27   return 0; 
28 }  
View Code

 

loj 113 最大异或和

原文:https://www.cnblogs.com/ZJXXCN/p/12287457.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!