ZOJ3067_Nim
题目的意思就不说了,典型的取石子的博弈问题。
题目的前半部分就是赤果果的SG函数值异或就可以了,其中Sg函数值就是石子数本身。
但是接下来有个小变换,就是要你输出先手必胜有多少种不同的取法。
首先要想保持必胜,必须要取完以后保证所有的石子数异或值为0.
这样,假设我们来判断某一堆是否可取的时候,我们可以用总的异或值来与当前堆石子数异或一下,就得出当前堆应该剩下多少石子哦(仔细理解这里就好了)
下面可以贴代码了:
#include <iostream>
#include <cstdio>
using namespace std; int a[],n,m,ans; int main()
{
while (scanf("%d",&n) && n)
{
ans=m=;
for (int i=; i<=n; i++) scanf("%d",&a[i]),m^=a[i];
if (m==)
{
printf("0\n");
continue;
}
for (int i=; i<=n; i++)
if ((a[i]^m)<a[i]) ans++;//一开始的时候我的判断条件是<=,居然也对了,诶数据略水,这里必须是严格的小于。
printf("%d\n",ans);
}
return ;
}
ZOJ3067_Nim的更多相关文章
随机推荐
- odoo学习之:在tree view中显示部分数据domain的使用
只要在window.action中他添加相应东domain即可,如: <!-- 树型列表 --> <record model="ir.actions.act_window& ...
- OpenStack入门篇(二)之OpenStack架构
1.OpenStack 架构 中间菱形是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块(OpenStack 叫服务,后面都用服务这个术语),下面来分别介绍. Nova:管理 VM ...
- (转) 前端面试之js相关问题(一)
原帖地址:http://stephenzhao.github.io/2016/08/19/Front-end-Job-Interview-Questions/ 最近我也是经历过面试别人和去面试的人了, ...
- Scratch3.0设计的插件系统(上篇)
我们每个人在内心深处都怀有一个梦想: 希望创造出一个鲜活的世界,一个宇宙.处在我们生活的中间.被训练为架构师的那些人,拥有这样的渴望: 在某一天,在某一个地方,因为某种原因,创造出了一个不可思议的.美 ...
- 同一个电脑配置两个Git问题
拿到公司电脑后,正常配置gitlab,以及设置邮箱等等,可以使用公司邮箱,以及一系列设置 git config --global user.name "userName" git ...
- Linux中新增硬盘的分区,格式化与挂载
Linux中新增硬盘的分区,格式化与挂载 本篇教程内容为怎样对Linux新增硬盘进行挂载,所以如果有准备新增硬盘但是有各种问题的,请参看本篇教程. 我们先说说什么是挂载? 我们知道Linux中的所有设 ...
- javascript 强制转换规则 boolean 布尔值类型
摘自 <你不知道的Javascript(中卷)> p55 一句话简述, 假值表以外的值均可以认为是真值,部分浏览器可能自定义了假值表以外的假值,并不符合W3C规范,需要特殊对待. 首先也是 ...
- 4星|《财经》2018年第15期:电动飞机、无人小飞机、AI无人机
<财经>2018年第15期 总第532期 旬刊 本期主题是AI.有多篇国内AI行业的比较深入的调查报告,比较有意思的有:电动飞机.无人小飞机.AI无人机.欧盟通用数据保护条例.Amazon ...
- xshell—实现Linux与Windows之间的文件传递
在Windows系统上,通过xshell连接Linux系统. 第一种使用方式:从Linux系统上下载文件到Windows系统. 准备工作: $ sudo apt-get install lrzsz 安 ...
- Python基础灬序列(字符串、列表、元组)
序列 序列是指它的成员都是有序排列,并且可以通过下标偏移量访问到它的一个或几个成员.序列包含字符串.列表.元组. 字符串 chinese_zodiac = '鼠牛虎兔龙蛇马羊猴鸡狗猪' print(c ...