题目链接:点击查看

题目大意:给出 n 个 01 字符串,两个人轮流进行游戏,每次可以选择任意数量的字符串,进行下列操作之一(每个字符串进行的操作可以不同):

  1. 选择一个字符串,使得其中的一个 ' 1 ' 变为 ' 0 ' , 如 10000 -> 00000
  2. 选择一个字符串,使得其中连续的,数量大于 2 的 ' 0 ' 变为一个 ' 1 ' ,如 10000 -> 11

无法操作的一方输

题目分析:需要转换题意,首先仔细观察后可以发现,操作 1 和操作 2 的共同特点是,可以改变 ‘ 1 ’ 数量的奇偶性,因为操作 1 是减少一个 1 ,而操作 2 是增加一个 1 ,最后输的局面是 n 个字符串都是 0 ,这样一来,我们就参照尼姆博弈的思想,不难想到当 n 个字符串中 ' 1 ' 的个数都为偶数时为必败态,因为此时你如何操作,对手只需要模仿你进行相同的操作就行,这样无论你如何操作,对手都会进行最后一次操作,相反,如果不是必败态时,完全可以先手将奇数的字符串都更改为偶数的字符串,从而形成必败态

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e6+100;char s[N];int main()
{
#ifndef ONLINE_JUDGE
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int w;cin>>w;while(w--){int n;scanf("%d",&n);bool flag=true;while(n--){scanf("%s",s);if(count(s,s+strlen(s),'1')&1)flag=false;}if(flag)puts("kgNB");elseputs("sdzNB");}return 0;
}

牛客 - A Simple Game(尼姆博弈变形)相关推荐

  1. HDU - 1907 John(尼姆博弈变形)

    题目链接:点击查看 题目大意:给出 n 堆石子,两个人轮流取,至少取一个,取到最后一个的人输 题目分析:尼姆博弈是取到最后一个的人获胜,这个题正好反着 一个很显然的奇异局势就是,每一堆的石子的个数都为 ...

  2. 浙江农林大学第十九届程序设计竞赛暨天梯赛选拔赛-D 涛涛和策策的游戏(尼姆博弈)

    浙江农林大学第十九届程序设计竞赛暨天梯赛选拔赛-D 涛涛和策策的游戏 链接:https://ac.nowcoder.com/acm/contest/7872/D 来源:牛客网 题目描述 涛涛和策策打码 ...

  3. 浙江农林大学第十九届程序设计竞赛暨天梯赛选拔赛 涛涛和策策的游戏 (尼姆博弈)

    链接:https://ac.nowcoder.com/acm/contest/7872/D 来源:牛客网 题目描述 涛涛和策策打码累了的时候会聚在一起van游戏. 某一天他们又凑在一起玩游戏了,因为最 ...

  4. 博弈论学习之巴什博弈,尼姆博弈, sg博弈

    博弈论真是一个神奇的东西,感觉和博弈论厉害的人玩游戏绝对会输. 这个博客讲的很好很全面 此类问题一般有如下特点: 1.博弈模型为两人轮流决策的非合作博弈.即两人轮流进行决策,并且两人都使用最优策略来获 ...

  5. hdu 5708 Alice and Bob(尼姆博弈)

    题目链接:hdu 5708 Alice and Bob Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65536 K (Java ...

  6. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈)

    巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流从中取物,规定每次最少取一个,最多取m个,最后取光者为胜 举一个最简单的例子就是,当n=m+1时,此时不管先手取多少,后手都能把剩下的取完 ...

  7. 博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase)

    博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase) 转载自: http://tieba.baidu.com/p/1474319443 http://blog.sin ...

  8. 博弈论(巴什博弈,威佐夫博弈,尼姆博弈)

    文章目录 一.巴什博弈 二.威佐夫博弈 三.尼姆博弈 一.巴什博弈 一堆n个物品,两个人从中轮流取出1~m个,最后取关者胜. 同余定理:n=K*(m+1)+r;先取者拿走r个,那么后者无论拿走(1~m ...

  9. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)

    一.  巴什博奕(Bash Game): A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30.这应该是最古老的关于巴什博奕的游戏了吧. 其实如果知道原理,这游戏一点运气成分都没有,只和先手 ...

最新文章

  1. TensorFlow——入门基础
  2. java线程间通信管道_通过管道进行线程间通信
  3. ERP 已死,中台已凉,DDD 称王!
  4. 测试数据库sql声明效率
  5. linux 分卷压缩命令,linux 分卷压缩命令
  6. VMware虚拟机扩展Ubuntu系统磁盘空间
  7. 标准错误处理机制——error
  8. 如何更sql sever数据库表的所有者
  9. php读取某类型文件代码,php代码实现读取文件头判断文件类型
  10. full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序
  11. css 背景属性 0302
  12. linux界面更改用户名,linux跳过用户名密码登陆界面方法
  13. html文本框%3cdiv%3e,index.html
  14. B. DZY Loves Modification
  15. java静态声明调用_求问 static声明的方法不是只能调用静态属性或者方法吗?
  16. 数学建模:层次分析法实例以及代码
  17. 双网卡电脑同时访问内外网设置静态路由表
  18. AUTOSAR和OSEK关系及网络管理比较
  19. 在网页上如何实现文字竖排
  20. IT女神说自然语言处理(1)----LDA

热门文章

  1. java 防渗透_「java、工程师工作经验怎么写」-看准网
  2. php string pos,有关pos()的文章推荐10篇
  3. Lua语法入门HelloWorld
  4. 第五章 数组、矩阵与广义表
  5. Spring 中的隔离级别
  6. SpringMVC的请求-获得请求参数-请求参数类型
  7. 实现房源列表的Dubbo服务的开发
  8. 数组的定义格式一_动态初始化
  9. 口令加密算法 - Java加密与安全
  10. Zookeeper的典型应用场景(1)