【bzoj3150】 cqoi2013—新Nim游戏
www.lydsy.com/JudgeOnline/problem.php?id=3105 (题目链接)
题意
在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴。可以一堆都不拿,但不可以全部拿走。第二回合也一样,第二个游戏者也有这样一次机会。从第三个回合(又轮到第一个游戏者)开始,规则和Nim游戏一样。问是否有先手必胜策略。
Solution
动态维护线性基。拟阵证明?我也不会,请自行百度。
代码
// bzoj3105
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#define LL long long
#define inf 2147483640
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std;const int maxn=110;
int bin[32];
int a[maxn],b[32],n;bool cmp(int a,int b) {return a>b;
}
int main() {bin[0]=1;for (int i=1;i<31;i++) bin[i]=bin[i-1]<<1;scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&a[i]);sort(a+1,a+1+n,cmp);LL ans=0,tot=0;for (int i=1;i<=n;i++) tot+=a[i];for (int i=1;i<=n;i++) {int tmp=a[i];for (int j=30;j>=0;j--)if (a[i]&bin[j]) {if (!b[j]) {b[j]=i;break;}else a[i]^=a[b[j]];}if (a[i]) ans+=tmp;}if (ans!=0) printf("%lld\n",tot-ans);else printf("-1");return 0;
}
转载于:https://www.cnblogs.com/MashiroSky/p/5914017.html
【bzoj3150】 cqoi2013—新Nim游戏相关推荐
- BZOJ 3105:[cqoi2013]新Nim游戏
BZOJ 3105:[cqoi2013]新Nim游戏 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3105 题目大意:在传统的Nim取石子 ...
- 洛谷P4301 [CQOI2013]新Nim游戏
洛谷P4301 [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火 ...
- P4301 [CQOI2013] 新Nim游戏
P4301 [CQOI2013] 新Nim游戏 题目: 在传统的Nim游戏基础上加一步,在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿走.第二回合也一样,第二 ...
- 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
拟阵:贪心算法的理论基础 拟阵是满足下列条件的一个序队M = (S, I) ①S是一个有穷的集合,I是集合的集合且非空 ②I具有遗传性质:如果集合B∈I 且 A⊂B,则A∈I,即若B∈I,则B是S的独 ...
- 【bzoj3105】新Nim游戏
Portal--> bzoj3105 新Nim游戏 Solution 转化一下问题 首先看一下原来的Nim游戏,先手必胜的条件是:每堆数量的异或和不为\(0\) 所以在新的游戏中,如果要保证自己 ...
- 【BZOJ3105】新Nim游戏,线性基+贪心
Time:2016.09.08 Author:xiaoyimi 转载注明出处谢谢 思路: 思路题 看似简单,但是使用的知识还是很有意思(sang bing)的 首先就是关于Nim游戏 总之就是第一次取 ...
- P4301-[CQOI2013]新Nim游戏【线性基】
正题 题目链接:https://www.luogu.com.cn/problem/P4301 题目大意 nnn个石头,先手先取走若干堆(不能全取,可以不取),后手取走若干堆(不能全取,可以不取).然后 ...
- 2017.9.23 新Nim游戏 失败总结
既然双方第一轮的操作都相同,那就相当于第一个人留下的石子堆之间无论怎么组合都不会出现异或==0的情况 一开始猜了一个错的结论,去重+最小,,然而秒wa,样例太水 然后就考虑如何让剩下的集合尽量大,且不 ...
- 博弈论(Nim游戏、有向图游戏之SG函数)
这里写目录标题 经典NIM游戏 Nim游戏属于公平组合游戏ICG 有向图游戏(SG函数) Mex运算 SG函数 单个有向图(一堆石子) 求SG值(记忆化递归) 有向图游戏的和 ,(多个有向图(多堆石子 ...
最新文章
- 30行代码,带你分分钟创建神经网络!(附工具教程)
- [vue] 你知道style加scoped属性的用途和原理吗?
- iOS发展系列II - UILabel 使用摘要
- 时序分析基本概念介绍——STA概述
- 命令行编译_[Bazel]自定义命令行编译标志
- python加载csv文件去重_用python读写和处理csv文件
- WOJ2230 树上修改1(倍增/树剖(树剖写法见下篇))
- 漫谈 Clustering (5): Hierarchical Clustering
- android设计个人简历页面_制作个人简历网站教程
- css怎么写仿粗体,在CSS中字体加粗要怎么做?
- 思维导图怎么做计划的简单高效绘制方法
- Pygame实战:下五子棋吗?信不信我让你几步你也赢不了?
- linux 跨网段ping,Linux中跨网段ping问题
- 【Matlab数字识别】数字仪表图像识别【含源码 693期】
- java rmi 推送_java 企业微信推送消息 示例源码
- 2021-2022学年广州市执信中学七年级第一学期期中考试英语试题
- 在计算机海洋里摸爬滚打搜集的一些资源
- pgr_createTopology正运行时卡死的解决
- ajax如何实现表单验证码,Ajax实现提交表单时验证码自动验证(原创自Zjmainstay)...
- LayaAir引擎放弃Canvas API,打造次世代3D引擎与云游戏引擎,提供AI赋能!