标签:模板题 格式 reg www. 描述 sha 重复 printf new
这是一道模板题。
给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。
输入格式:
第一行一个数n,表示元素个数
接下来一行n个数
输出格式:
仅一行,表示答案。
1≤n≤50,0≤Si?≤250
链接:https://www.luogu.org/problemnew/show/3812
AC代码:
#include<cstdio> #include<iostream> #define BIG 133333 #define FOR(i,s,t) for(register int i=s;i<=t;++i) typedef long long ll; ll u,ans; int n; ll b[70]; int main(){ scanf("%d",&n); while(n--){ scanf("%lld",&u); for(register int i=60;~i;--i) if(u&(1ll<<i)){ if(!b[i]){ b[i]=u; break; } else u^=1ll*b[i]; } } for(register int i=60;~i;--i) if((ans^b[i])>ans)ans^=b[i]; printf("%lld\n",ans); return 0; }
标签:模板题 格式 reg www. 描述 sha 重复 printf new
原文地址:http://www.cnblogs.com/Stump/p/7811285.html