传送门

分析

通过nim游戏我们可以知道我们现在的任务就是通过两轮之后使得剩余的几堆异或和为非0数

所以我们只需要在第一步使得剩余集合的任意非空子集的异或和非0即可

于是我们考虑线性基

我们知道线性基所选数会使总和最大且任意非空子集的异或和非0

于是跑线性基即可

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
long long a[],n,Ans,belong[];
inline bool cmp(long long x,long long y){return x>y;}
inline void work(){
long long i,j,k;
for(i=;i<=n;i++){
k=a[i];
for(j=;j>=;j--)
if((<<j)&a[i]){
if(!belong[j]){
belong[j]=a[i];
break;
}
a[i]^=belong[j];
}
if(!a[i])Ans+=k;
}
}
int main(){
long long i,j,k;
scanf("%lld",&n);
for(i=;i<=n;i++)scanf("%lld",&a[i]);
sort(a+,a+n+,cmp);
work();
printf("%lld\n",Ans);
return ;
}

最新文章

  1. java普通servlet三层开发模式图
  2. html5 list属性、autocomplete属性、pattern属性
  3. MatLab实现FFT与功率谱
  4. [原创]obj-c编程15[Cocoa实例02]:KVC和KVO的实际运用
  5. WimMaker 2.0 (2013.10) WIM制作工具
  6. LeetCode 163. Missing Ranges (缺失的区间)$
  7. 使用sklearn进行数据挖掘-房价预测(3)—绘制数据的分布
  8. 微信跳一跳Python
  9. Mac效率:配置Alfred web search
  10. 1.3、Android Studio创建一个Android Library
  11. c# 基于文件系统实现的队列处理类
  12. spark streaming中维护kafka偏移量到外部介质
  13. PHP 简易聊天室 利用redis的订阅发布功能
  14. python之类和__init__
  15. 阿里巴巴数据源Druid在tomcat中的配置
  16. Android--字符串和Drawable之间互相转化
  17. gcc常用编译选项
  18. excel导入 导出
  19. Centos 7 下 Corosync + Pacemaker + psc + HA-proxy 实现业务高可用
  20. 带你走进EJB--将EJB发布为Webservice(3)

热门文章

  1. 简单的说一下:tarits技法就是一种模板元编程,起可以将本来处于运行期的事拉到编译期来做,增加了运行效率。 看以非模板元编程的例子,就是前面的那个例子:
  2. New Concept English three (53)
  3. 深入探索C++对象模型 读书笔记
  4. HihoCoder1465 重复旋律8(后缀自动机)
  5. Yii 查询 搜索
  6. nodejs express mysql
  7. python函数-filter()
  8. 【转载,实测好用】gitlab结合sourcetree使用
  9. 洛谷【P1004】方格取数
  10. compile cef2526