ZJNU 1538 - YN!ngC的取子游戏--高级

Nim博弈

因为移动到第0阶会消失

所以可以得到从最后一个人操作必定是把第1阶所有子全部移动到第0阶

递推可得,最后一个能把奇数阶的子移动到偶数阶上的人将会必胜

所以这个必胜条件就是奇数阶上的子全部为0

拿奇数阶进行Nim博弈即可

 1 #include<stdio.h>
 2 int main(){
 3     int n,i,a,s=0;
 4     scanf("%d",&n);
 5     for(i=1;i<=n;i++){
 6         scanf("%d",&a);
 7         if(i%2==1)
 8             s^=a;
 9     }
10     puts(s?"YN!ngC":"Albert");
11
12     return 0;
13 }

原文地址:https://www.cnblogs.com/stelayuri/p/12236162.html

时间: 2024-10-11 18:42:34

ZJNU 1538 - YN!ngC的取子游戏--高级的相关文章

网狐SQL常用脚本自动添加子游戏信息棋牌平台架设教程

好久没写了,这次给大家说个用SQL脚本自动添加子游戏每次新装好环境后,增加子游戏是个重复的劳动,很麻烦,怎么能让他自动生成呢.下面我们就用SQL脚本来解决. 将下面代码写入记事本,保存成 " 游戏ID.SQL".USE QPPlatformDBGOTRUNCATE TABLE GameGameIteminsert into GameGameItem(GameID, GameName, SupporType, DataBaseAddr, DataBaseName, ServerVersi

Cocos Creator大厅+子游戏模式

一.前言 根据上一篇(Cocos Creator热更新),可以看出以下几点: build-default目录下的main.js,为cocos creator项目的入口: 热更新一文中,放置在服务器上的,仅有资源,脚本,配置等,没有入口程序,因此本文中,我们需要创造一个入口程序. 还是解释一下什么叫大厅+子游戏模式:   1. 将大厅单独作为一个完整的项目,不同的子游戏,则为不同的项目   2. 然后要实现不同项目之间的互调,即大厅调子游戏,或者子游戏调大厅   3. 资源共享,共用的资源放在大厅

SDUT 3004-盒子游戏(博弈)

题目链接:点击打开链接 题意:2人博弈问题. 有两个相同的盒子,其中一个装了 n 个球,另一个装了一个球. Alice 和 Bob 发明了一个游戏,规则如下: Alice 和 Bob 轮流操作, Alice 先操作.每次操作时,游戏者先看看哪个盒子里的球的数目比较少, 然后清空这个盒子(盒子里的球直接扔掉),然后把另一个盒子里的球拿一些到这个盒子中,使得两个盒子都至少有一个球.如果一个游戏者无法进行操作,他(她)就输了. 有一个地方比较坑的是当两堆物品相同的时候可以取任意一堆而不是直接输掉.可见

Wannafly挑战赛24-A-石子游戏--【思维题】

链接:https://www.nowcoder.com/acm/contest/186/A 来源:牛客网 石子游戏 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 Alice和Bob在玩游戏,他们面前有n堆石子,对于这些石子他们可以轮流进行一些操作,不能进行下去的人则输掉这局游戏. 可以进行两种操作: 1. 把石子数为奇数的一堆石子分为两堆正整数个石子 2. 把两堆石子数为偶数的石子合并

ZJNU 1196 - 三阶魔方【模拟题】——高级

大模拟,空想很容易把面和面之间的关系搞混 所以这时候需要自己找一个正方体(实在不行长方体代替)跟着图把每个面正方向标出来 然后模拟6种操作分别会对哪些块进行操作 对于储存数据的想法是,对输入输出进行分块,以c[i][j]表示是第i个面的第j块 具体参照下文输入输出内的 for(i=0;i<3;i++) for(j=0;j<18;j++){ scanf("%s",cd); c[j/3][j%3+i*3]=cd[0]; } 与 for(i=0;i<3;i++) for(j

leetcode day2

[参考]http://book.2cto.com/201210/5663.html [参考]http://www.cnblogs.com/exponent/articles/2141477.html nim game定义: Nim是一种两个人玩的游戏,玩家双方面对一堆硬币(或者石头或者豆粒).假设有k≥1堆硬币,每堆分别有n1,n2,…,nk枚硬币.这一游戏的目标就是取得最后一枚硬币.游戏的规则如下: (1)玩家轮番出场(我们称第一个取子的玩家为Ⅰ,而第二个玩家为Ⅱ). (2)当轮到一个玩家取子

NIM游戏策略

NIM取子游戏是由两个人面对若干堆硬币(或石子,或..)进行的游戏,游戏由两个人进行,设有k>=1堆硬币,各堆含有n1,n2,n3,n4.....,nk个硬币,游戏的目的就是选取最后剩下的硬币.游戏规则如下: 1)游戏人交替进行游戏: 2)当轮到每个游戏人取子时,选择这些硬币中的一堆,并从所选的堆中取走至少一枚硬币(可以将所选堆中所有硬币全部取走剩下一个空堆). 当所有堆变成空堆时,游戏结束.最后取子的人(即能够取走最后一堆中的所有硬币的人)获胜. 这个问题中的变量是堆数k和各堆的硬币数n1,n

(博弈 sg入门2)

接下来介绍Nim游戏(同样引用杭电上的,懒的打字) 1.有两个玩家:   2.  有三堆扑克牌(比如:可以分别是    5,7,9张):  3. 游戏双方轮流操作:  4. 玩家的每次操作是选择其中某一堆牌,然后从中取走任意张:   5.最后一次取牌的一方为获胜方: 想一会: 还记得刚才说的P点和N点吗?P:必败点,N:必胜点 先给出结论,这里要用到位运算,异或:^ 游戏的某个位置(x1,x2,x3) x1,x2,x3表示3堆的个数.当且仅当 x1^x2^x3=0时,此点才是必败点P: 结论可以

博弈的坑 待填 一些小知识

前些日子我打算开了博弈基础,事后想进行总结下 一句话就是分析必胜或必败,异或为0. 以下内容来自转载: Nim游戏的概述: 还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输.后来,在一份资料上看到,这种游戏称为"拈(Nim)".据说,它源自中国,经由被贩卖到美洲的奴工们外传.辛苦的工人们,在工作闲暇之余,用石头玩游戏以排遣寂寞.后来流传到高级人士,则用便士(Pennies),在酒吧柜台上玩.最有名的玩法,是把十二枚便士放