既然双方第一轮的操作都相同,那就相当于第一个人留下的石子堆之间无论怎么组合都不会出现异或==0的情况

一开始猜了一个错的结论,去重+最小,,然而秒wa,样例太水

然后就考虑如何让剩下的集合尽量大,且不含异或==0的子集

可以分类讨论一下,如果有一个数而今滋味全部唯一,则它一定可以保留

而如果有二进制位全部相同,则最多留一个

当一个子集出现异或==0的情况时,一定删除集合中的一个数,再判断子集是否有0

由于要求是最大,所以贪心保留最大的数即可,因为如果最大的数有和它异或==0的,一定有几个删几个,因为两两集合都满足异或==0

题解是线性基和拟阵、、不懂的话就只能强行解释了、

码(注释是自己 思(xia)考( bian)后写的):

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define N 105
#define ll long long
ll a[N],jilu[N],i,n,j,sum,ans,you[N];
int main()
{scanf("%lld",&n);for(i=1;i<=n;i++){scanf("%lld",&a[i]);}sort(a+1,a+1+n);for(i=n;i;i--){sum+=a[i];jilu[i]=a[i];//记录原来的值 }for(i=n;i;i--)//大到小枚举每一个数,判断是否可以保留 {for(j=29;j>=0;j--)//拆出二进制位 {if(a[i]&(1<<j))//如果j位为1 if(!you[j])//如果之前没有过  意味着目前唯一 {you[j]=i; //记录这个1最大的位置 break;//它目前是可以保留的}else a[i]^=a[you[j]];//如果出现过,和出现过这个位的最大值取个反,因为要保留的是最大的数,所以只考虑对i进行操作 //这时a[i]变成了新数,这个数的意义就是和出现过的数有几位不一样 }    if(a[i])//如果至少有一位和出现过的不一样 ans+=jilu[i];//就可以保留 }printf("%lld",sum-ans);
}

2017.9.23 新Nim游戏 失败总结相关推荐

  1. 2017.10.23 卡牌游戏 失败总结

    dp好难啊.. 这个题主要是离散点找不准,但其实也就这样 1.尝试状态压缩,状态爆炸 2.状态里面1很多,尝试统计1的个数 3.枚举起点 但这样做还是没法做,因为没有终点 所以就再枚举一层终点.. 就 ...

  2. BZOJ 3105:[cqoi2013]新Nim游戏

    BZOJ 3105:[cqoi2013]新Nim游戏 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3105 题目大意:在传统的Nim取石子 ...

  3. 【bzoj3105】新Nim游戏

    Portal--> bzoj3105 新Nim游戏 Solution 转化一下问题 首先看一下原来的Nim游戏,先手必胜的条件是:每堆数量的异或和不为\(0\) 所以在新的游戏中,如果要保证自己 ...

  4. 洛谷P4301 [CQOI2013]新Nim游戏

    洛谷P4301 [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火 ...

  5. P4301 [CQOI2013] 新Nim游戏

    P4301 [CQOI2013] 新Nim游戏 题目: 在传统的Nim游戏基础上加一步,在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿走.第二回合也一样,第二 ...

  6. 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)

    拟阵:贪心算法的理论基础 拟阵是满足下列条件的一个序队M = (S, I) ①S是一个有穷的集合,I是集合的集合且非空 ②I具有遗传性质:如果集合B∈I 且 A⊂B,则A∈I,即若B∈I,则B是S的独 ...

  7. 【bzoj3150】 cqoi2013—新Nim游戏

    www.lydsy.com/JudgeOnline/problem.php?id=3105 (题目链接) 题意 在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿 ...

  8. 【BZOJ3105】新Nim游戏,线性基+贪心

    Time:2016.09.08 Author:xiaoyimi 转载注明出处谢谢 思路: 思路题 看似简单,但是使用的知识还是很有意思(sang bing)的 首先就是关于Nim游戏 总之就是第一次取 ...

  9. P4301-[CQOI2013]新Nim游戏【线性基】

    正题 题目链接:https://www.luogu.com.cn/problem/P4301 题目大意 nnn个石头,先手先取走若干堆(不能全取,可以不取),后手取走若干堆(不能全取,可以不取).然后 ...

最新文章

  1. 5天5000万访问的个人网站是如何诞生的?
  2. Spring(2)bean注入--Set方法注入
  3. Web安全——正方教务系统自主选课非正常退课解决方案(危险操作,仅用于学习)
  4. JFreeChart相关类中文说明
  5. 深入理解redis数据类型
  6. CV Code|计算机视觉开源周报20200601期
  7. linux下chm文件制作,自己动手将在线文档制作成CHM文件
  8. 将markdown文档转化为pdf格式
  9. 黑马程序员————小牛皮糖学习笔记————其他对象Sytem-Runtime-Date-Math
  10. 计算机网络中如何看别人的共享文件夹,教大家如何使用网络共享文件夹和手机如何使用电脑端查看网络共享-共享文件夹...
  11. K8S环境快速部署Kafka(K8S外部可访问)
  12. charles(抓包神器)
  13. csv文件用excel打开不分列
  14. 论文总结-交通预测(未完成)
  15. 基于iproute命令集配置Linux网络(ip命令)
  16. MySQL 手动配置环境变量(详细)
  17. Android WLAN框架
  18. 比心一直显示服务器繁忙,QQ空间里面的相册打不开是为什么,老是说服务器正忙...
  19. 短视频去水印API文档
  20. 第五届蓝桥杯C/C++本科B组(真题试做)(9~10)

热门文章

  1. ceph怎么搭建文件存储_SUSE专家谈Ceph落地之最佳实践
  2. Think in Java第四版 读书笔记4第九章第十章
  3. 关于pytorch里面的图像变换
  4. zoj 1586 QSNetwork 最小生成树 Prim Kruskal
  5. linux usr local权限,【linux】sudo chown -R $(whoami) /usr/local提示操作被拒绝
  6. python跳过错误_Pandas之read_csv()读取文件跳过报错行的解决
  7. cassandra随机获取数据_Cassandra维护最终一致性 和存储机制 分区策略
  8. 单片机 实现计算机键盘录制,用单片机实现PC键盘输入.doc
  9. python len命令_python命令行参数
  10. call stack是什么错误_Go语言(golang)的错误(error)处理的推荐方案