首页 > 其他分享 >「反Nim」数列游戏

「反Nim」数列游戏

时间:2022-12-27 21:44:45浏览次数:32  
标签:GCC 游戏 Nim 样例 异或 include optimize 数列

本题为12月27日22寒假集训每日一题题解

题目来源:(未知)

题面

题目描述

cad和jyx最近迷上了一款名为插入数列的游戏,有一个n行m列的网格,你每次可以按下1个或多个格子,但必须要在同一列且连续,已经按过的地方不可以再按,谁按下最后一个格子,谁就输了,刚开始的时候互有胜负,但玩过几把之后两个人慢慢的就知道了自己最优的走法是什么,现在问题来了,给你n和m你能告诉我谁会赢吗?(cad先手)

输入

多组测试样例

每组测试样例两个数分别表示行和列(n,m<=1e5)

输出

输出赢的人的名字

样例输入

1 1

样例输出

jyx


思路分析

显然,这是一个反Nim问题,列为堆,行为堆里元素的个数,直接套用反Nim问题的结论即可.

反Nim问题的结论:

当至少一堆大于1时,与Nim问题一致 异或和为0,必败;异或和不为0,必胜

当每一堆都是1时,与Nim问题相反 异或和不为0,必败;异或和为0,必胜

不过由于这里每一堆里元素的个数都是相同的,所以异或和可以直接用行的奇偶性代替(奇即异或和非0,偶即异或和为0).

参考代码

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3, "Ofast", "inline")

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);

    // 输入数据
    int n, m;
    while(cin >> n >> m)
    {
        // 反Nim问题的特殊情况
        if(n == 1)
        {
            m += 1; // +1使得奇偶性发生颠倒,即对Nim问题结论取反
        }

        // Nim问题结论
        if(m % 2)
        {
            cout << "cad\n";
        }
        else
        {
            cout << "jyx\n";
        }
    }

    return 0;
}

"正是我们每天反复做的事情,最终造就了我们,优秀不是一种行为,而是一种习惯" ---亚里士多德

标签:GCC,游戏,Nim,样例,异或,include,optimize,数列
From: https://www.cnblogs.com/geministar/p/zstu22_12_27.html

相关文章

  • 微信小游戏使用小结
    1.小游戏上传时如果勾选自动压缩的话,实际还同时会混淆。因为用到SpringIOC功能,不能用反射,所以去掉压缩,自行做压缩(主要是把一些库文件换成min版本,并且在头尾加上;window.egr......
  • 如何制作游戏微端
    1.Hbuilder打出IOS的越狱包或者有时间限制的包 ​​http://www.dcloud.io/​​2.用appuploader领取暂时的管理证书和profile描述文件 ​​http://www.appuploader.net/​......
  • 游戏玩家的留存率统计实现
     玩家在某段时间内注册开始游戏,经过一段时间后,仍然继续游戏的被认作是留存;这部分用户占当时新增用户的比例即是留存率,会按照每隔1单位时间(例日、周、月)来进行统计。顾名......
  • 游戏服务器设计-脚本系统设计
    游戏项目中都会遇到以下的一些需求:1.从内存里查询数据2.修复个别玩家的异常数据如何能最快捷的方式去实现,目前有两种脚本引擎可以选择:beanshell和groovy.经过比较得出如下......
  • LNMP架构环境之Nginx项目1:搭建游戏网站
    1)配置站点目录cd/usr/share/nginx/rm-frhtml/通过SCP工具将gamme.zip上传到/usr/share/nginx/html/目录下#上传游戏程序unzipgame.zipcd /usr/share/nginx/sbin/2)......
  • cocos游戏开发(1)环境准备
    cocos游戏开发(1)环境准备​​1.下载python2.7.5+版本​​​​2.下载cocosv3版本​​​​3.环境配置​​​​4.项目测试​​1.下载python2.7.5+版本如果电脑已经下载python3版......
  • 前端--3D立体魔方小游戏
    一、案列效果二、案列目录文件获取 ​​JS文件获取​​三、案列代码文件可在本文案例目录获取<!DOCTYPEhtml><html><head><metacharset="utf-8"><metaname="v......
  • 融云 x OHLA:「社交+游戏」双轮驱动,逐鹿中东陌生人社交
    ​​完整报告,限免下载,点击获取​​走过十多年的出海历程,中国创业者面临的机遇和挑战正在发生根本性变化。TikTok、SHEIN在全球大获全胜的背后,不仅有中国产业链成熟、工程师......
  • 小游戏变现方式大揭秘!
    随着羊了个羊等小游戏的爆火,不少人发现了小游戏赛道的巨大潜力,也想要在此赛道有所尝试。但是很多游戏赛道的新人对于小游戏变现问题存有疑问,今天就来跟大家分享一下小程序游......
  • JZ62 孩子们的游戏(圆圈中最后剩下的数)
    JZ62孩子们的游戏(圆圈中最后剩下的数)题目每年六一儿童节,牛客都会准备一些小礼物和小游戏去看望孤儿院的孩子们。其中,有个游戏是这样的:首先,让n个小朋友们围成一个大......