【BZOJ3105】新Nim游戏,线性基+贪心
Time:2016.09.08
Author:xiaoyimi
转载注明出处谢谢
思路:
思路题
看似简单,但是使用的知识还是很有意思(sang bing)的
首先就是关于Nim游戏
总之就是第一次取出的石子必须让剩余石子集合中没有子集的异或和为0(还要尽可能小)
然后自认为很聪明的就打了个线性基上去
结果也没有判断无解的情况就A了……
什么鬼数据??
好吧这个题实际上就是贪心思路
证明这个贪心还要用到拟阵……看了看遗传性交换性直接弃疗,找时间再补吧……
做法额……很简单啊,把数量按照从大到小排序,然后往线性基里扔就可以了
扔不进去的数就加到答案里
无解的情况就是判断最终答案是不是等于总数(也就是说是不是要全取走,因为要求是第一次不能全取走的)
代码:
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int a[105],lb[31];
long long ans,tot;
main()
{scanf("%d",&n);for (int i=1;i<=n;++i)scanf("%d",a+i),tot+=a[i];sort(a+1,a+n+1);for (int i=n;i;--i){bool flag=0;int t=a[i];for (int j=30;j>=0;--j)if (a[i]>>j&1)if (!lb[j]){lb[j]=a[i];flag=1;break;}elsea[i]^=lb[j];if (!flag) ans+=t;}printf("%lld",ans==tot?-1:ans);
}
【BZOJ3105】新Nim游戏,线性基+贪心相关推荐
- 【bzoj3105】新Nim游戏
Portal--> bzoj3105 新Nim游戏 Solution 转化一下问题 首先看一下原来的Nim游戏,先手必胜的条件是:每堆数量的异或和不为\(0\) 所以在新的游戏中,如果要保证自己 ...
- 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
拟阵:贪心算法的理论基础 拟阵是满足下列条件的一个序队M = (S, I) ①S是一个有穷的集合,I是集合的集合且非空 ②I具有遗传性质:如果集合B∈I 且 A⊂B,则A∈I,即若B∈I,则B是S的独 ...
- 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游戏基础上加一步,在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿走.第二回合也一样,第二 ...
- 【CodeForces 1100F】异或线性基 | 贪心 | 离线区间最大异或和 | E
补题ing- 真的不应该错过这场比赛的 qwq 1100F. Ivan and Burgers time limit per test: 3 seconds memory limit per test ...
- 【bzoj3150】 cqoi2013—新Nim游戏
www.lydsy.com/JudgeOnline/problem.php?id=3105 (题目链接) 题意 在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿 ...
- 2017.9.23 新Nim游戏 失败总结
既然双方第一轮的操作都相同,那就相当于第一个人留下的石子堆之间无论怎么组合都不会出现异或==0的情况 一开始猜了一个错的结论,去重+最小,,然而秒wa,样例太水 然后就考虑如何让剩下的集合尽量大,且不 ...
- P4570 [BJWC2011]元素(线性基+贪心)
题目链接:https://www.luogu.org/problem/P4570 题目大意: 给一个序列,在这个序列中选一些数,这些数的魔法值之和要最大,要求这些数中任意几个数的异或和不为0. 解题报 ...
最新文章
- git创建本地版本仓库及注意事项
- P3128 [USACO15DEC]最大流Max Flow
- PHP 实现简单的 倒计时 时分秒
- SharePoint【学习笔记】-- SharePoint 2010 技术参数整理
- treegrid.bootstrap使用说明
- 漫画 | 让设计师崩溃的十个瞬间
- C++_IO与文件5-文件的输入与输出
- 中国联通加快数据中心建设:全网机架数量超过32万架
- boost学习之安装
- OpenWebFlow0.9用户手册与设计说明
- 关于3Q大战和反垄断
- ios福利部落绕过激活锁,屏幕锁/已停用界面完美隐藏工具,支持最新ios15.5系统绕过
- 2021暑假Leetcode刷题——Two Pointers(2)
- 阿斯加德心灵危机java,雷神的姐姐在阿斯加德不灭的情况下能不能刚灭霸
- 微信SDK非ipad协议
- 微信支付-支付结果通知接收
- 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)
- python箭头符号怎么打_python – 用箭头标记matplotlib直方图bin
- python pandas clip
- 网络安全职业规划(笔记)
热门文章
- 【IoT最佳实践】设备获取实时天气DEMO代码解读
- 非编程人学Python,要注意哪些隐秘的错误认知?
- 补习系列(22)-全面解读 Spring Profile 的用法
- 设计模式的C语言应用-观察者模式-第四章
- Angularjs进阶笔记(1)—不同类型的双向数据绑定
- 红橙Darren视频笔记 旋转加载界面
- html5表格内边框加粗,如何制作加粗的边框表格?
- python项目总结与展望_我做知识星球一周年总结与未来展望
- 例子---PHP与Form表单之三
- 用python计算准确率_Python 学习 scikit-learn 预测准确率计算