小志志和小峰峰的日常
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description

小志志和小峰峰特别喜欢一起讨论一些很好玩的问题。
小志志发现一个有趣的游戏,马上和小峰峰进行了分享。
有 n 堆石子堆,每堆石子个数为 a[i]。
到小志志的回合:小志志可以选取其中的一堆,拿至少 1 个最多 x 个石子。
到小峰峰的回合:小峰峰可以选取其中的一堆,拿至少 1 个最多 y 个石子。
小志志先手,回合交替进行,到该玩家回合如果无法操作,该玩家输。

Input

输入一个 T,总共有 T 组测试数据。
每组测试数据:
第一行输入 n 代表有 n 堆石子堆。
第二行输入 n 堆石子堆分别的数量。
第三行输入两个用空格隔开的 x, y 分别代表小志志和小峰峰对于一堆石子最多能拿的数量。
(1 <= n <= 1e5, 1 <= a[i], x, y <= 1e9)
Output

小志志赢输出 “xzz”,小峰峰赢输出 “xff”,答案不包含 “”。
Sample Input

3
1
3
2 2
2
4 7
4 5
3
3 4 7
8 8

Sample Output

xff
xzz
xff

Nim 博弈

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
void show(int ans)
{if(ans) cout << "xzz" << '\n';else cout << "xff" << '\n';
}
int a[N];
int main(void)
{int n, x, y, T;cin >> T;while(T--){cin >> n;for(int i = 0; i < n; i++) cin >> a[i];cin >> x >> y;if(x == y){int ans = 0;for(int i = 0; i < n; i++){ans ^= a[i]%(x+1);}show(ans);}else  // x!=y{int flag = 0, ans = 0;for(int i = 0; i < n; i++){ans ^= a[i];if(a[i] > min(x, y)){flag++;}}if(!flag)  //a[i] <= min(x, y){show(ans);}else  //exit a[i] > min(x, y){if(x > y) cout << "xzz" << '\n';else{if(flag > 1) cout << "xff" << '\n';else{int t;for(int i = 0; i < n; i++){if(a[i] > min(x, y)){t = a[i];ans ^= a[i];break;}}if(t - ans <= x && ans <= x) {cout << "xzz" << '\n';}else cout << "xff" << '\n';}}}}}return 0;
}

小志志和小峰峰的日常(SG函数)相关推荐

  1. sdut——4541:小志志和小峰峰的日常(取石子博弈模板题 4合1)

    小志志和小峰峰的日常 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小志志和小峰峰特别喜欢一起讨论一些很好玩的问题.  ...

  2. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)

    Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 871  Solved: 365 [Submit][Status][Discuss] Descripti ...

  3. AtCoder AGC043C Giant Graph (图论、SG函数、FWT)

    题目链接 https://atcoder.jp/contests/agc043/tasks/agc043_c 题解 场上感觉没啥思路就放弃了,场下想了十几分钟发现是水题,血亏...(只能怪自己计数水平 ...

  4. (转)博弈问题与SG函数

    博弈问题 若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需 ...

  5. NIM博弈+SG函数求解

    ICG 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移动者判负. 这个游戏可以认为是所有 Impartial Combinatorial Games 的 ...

  6. HDU1848 Fibonacci again and again SG函数

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  7. CodeForces - 850C Arpa and a game with Mojtaba(博弈+sg函数)

    题目链接:点击查看 题目大意:给出n个数,两个人轮流按照规则操作,不能操作的人即为失败,规则很简单,每次找一个质数p的k次幂,记做x=,将数组中所有包含x倍数的数都除以x,必须保证至少有一个数可以除以 ...

  8. Fibonacci again and again HDU - 1848(尼姆博弈+SG函数的运用+SG函数详解)

    题意: 给出三堆石子(m,n,p个),两人每次只能取斐波那契数f[i]个,最先取光所有石子者取胜 题目: 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义 ...

  9. HDU 1404 Digital Deletions(博弈 + SG函数打表)

    Digital Deletions 思路 一道博弈论的题目,考虑到题目所给的范围是字符长度为1−>61-> 61−>6,所以我们可以考虑暴力打表出10610 ^ 6106内的所有状态 ...

最新文章

  1. 组件赋值——@Value  ---@PropertySource(value={“classpath:/person.properties“})
  2. [CODEVS 1173] 最优贸易
  3. 面向服务的计算(SOC)课程相关资料
  4. html5家谱资源网,免费家谱系统(ASP,Access,CSS,html5)
  5. LINUN 网络连接小记
  6. JavaScript 里变量名前面加了大括号代表什么含义
  7. windows之如何知道C盘目录下的大文件路径
  8. git rebase原理(转)
  9. linux struct input_event结构体详解
  10. 如何选择正确的控制系统?PLC和DCS各有不同
  11. 公司终于把我变成了一颗忠诚的螺丝钉,我再也不能离开它
  12. 用python实现计算器
  13. 光纤跳线接口_你知道光纤接头、尾纤、终端盒的作用与接法嘛?读懂这篇足够...
  14. 只需要几行代码就可以轻松实现OCR图片转文字
  15. 音乐网站Spotify将融资4亿美元,估值84亿美元
  16. Python接口自动化之ddt学习笔记
  17. 动态规划之《高楼扔鸡蛋》问题详解 LeetCode 887.鸡蛋掉落
  18. STM32F103C8T6控制LED灯轮流闪烁
  19. ffmpeg 之ffmpeg 整理流程分析
  20. 【转】「一个」、「梨视频」、「必应词典」、「金山词典」、「豆瓣电影」、「12306」等应用的 API

热门文章

  1. 中国移动GPRS概况
  2. 搭建8086汇编语言学习环境——dosbox
  3. IAR下连仿真器可以正常运行,程序下载到flash部分功能异常
  4. 云服务器可以修改ip,云服务器的ip可以更换吗
  5. 微信小程序---canvas
  6. 《python数据分析(第2版)-阿曼多.凡丹戈》读书笔记第1章-jupyter及常见库
  7. iOS前期OC训练OC_10Block
  8. 低压差线性稳压器(LDO)设计与仿真
  9. Unity图文混排的几种方式
  10. java校园招聘华为_2015届华为校园招聘机试题 java实现