51 nod1067 Bash游戏 V2(sg函数打表)
1067 Bash游戏 V2
- 1.0 秒
- 131,072.0 KB
- 5 分
- 1级题
有一堆石子共有N个。A B两个人轮流拿,A先拿。每次只能拿1,3,4颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。
例如N = 2。A只能拿1颗,所以B可以拿到最后1颗石子。
收起
输入
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)
输出
共T行,如果A获胜输出A,如果B获胜输出B。 sg函数先打表,然后找规律。我们可以发现当n%7==0||n%7==2时sg值为0。
打表代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=,M=5e5+;
int v[N],sg[N],s[]={,,};
int mex(int x)
{
memset(v,,sizeof(v));
for(int i=;i<;i++)
{
if(x<s[i])
break;
v[sg[x-s[i]]]=;
}
for(int i=;;i++)
{
if(!v[i])
return i;
}
}
int main()
{
int i;
sg[]=;
for(int i=;i<N;i++)
{
sg[i]=mex(i);
}
for(int i=;i<N;i++)
{
printf("sg[%d] = %d\n",i,sg[i]);
}
return ;
}
AC代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long int main()
{
int T,n,x;
cin>>T;
while(T--)
{
cin>>x;
if(x%==||x%==)
{
printf("B\n");
}
else
{
printf("A\n");
}
}
return ;
}
51 nod1067 Bash游戏 V2(sg函数打表)的更多相关文章
- 51 Nod Bash 游戏v2
1067 Bash游戏 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 取消关注 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3 ...
- 1042 数字0-9的数量 1050 循环数组最大子段和 1062 序列中最大的数 1067 Bash游戏 V2 1092 回文字符串
1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19,1出现11次 ...
- (Bash博弈)51nod1067 Bash游戏 V2
1067 Bash游戏 V2 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3,4颗,拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出N,问最后谁能赢得 ...
- 51Nod 1067:Bash游戏 V2(巴什博弈)
1067 Bash游戏 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3,4 ...
- Nim 游戏、SG 函数、游戏的和
Nim游戏 Nim游戏定义 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(以下简称ICG).满足以 ...
- HDU 1864 Brave Game 【组合游戏,SG函数】
简单取石子游戏,SG函数的简单应用. 有时间将Nim和.SG函数总结一下……暂且搁置. #include <cstdio> #include <cstring> #define ...
- UPCOJ9526(SG函数打表,nim游戏异或规则)
#include<bits/stdc++.h>using namespace std;int f[1007],SG[1007],S[1007];//f为可以选取的石头个数,SG为sg函数, ...
- 1067 Bash 游戏v2
传送门 1067 Bash游戏 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3,4颗,拿到最后1颗石子的人 ...
- uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数)
uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数) uoj 题解时间 考虑如何求出每棵树(子树)的 $ SG $ . 众所周知一个状态的 $ SG $ 是其后继的 $ mex $ ...
随机推荐
- jQuery-Moblie在Chrome下出现的问题
第一次用jQuery然后就遇到很蛋疼的地方,打开页面一直处在菊花状态,一开始以为自己搞错什么,是不是引用错文件,看里面的错误警告 Failed to execute 'replaceState' on ...
- 同时安装了python和3,pycharm如何切换版本
1.打开pycharm 2.进入 File->Setting->Project:你的项目名->Project Interpreter 3.通过Project Interpreten ...
- IIS6的文件解析漏洞
IIS6的默认配置漏洞会把cer.cdx.asa作为asp代码来解析 后缀解析漏洞 /test.asp;.jpg 或者/test.asp:.jpg(此处需抓包修改文件名) IIS6.0 都会把此类后缀 ...
- 简单说说常用的css选择器
这里先来一段HTML代码 <div id="div" class="div"> <p class="div_P1"> ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(2)
Linux 系统定制原理 虚拟根目录 我们的目标是为了完成目标系统(也就是我们要做的系统),他是一个可以独立运行的系统,不依赖雨主系统和临时系统,根据 Linux 系统的特点它需要存放在根目录下面,但 ...
- 剑指offer-面试题60-n个骰子的点数-动态规划
/* 题目: 计算n个骰子,出现和s的概率. */ #include<iostream> #include<cstdlib> #include<stack> #in ...
- 本地服务开启MySQL57提示本地计算机上MySQL服务启动后停止。。。。
1.首先以管理员身份启动cmd,要不然服务禁止访问. 2.然后在cmd中输入 mysqld --remove mysql或者mysqld --remove mysql57来移除服务. 3.然后进入My ...
- SSH远程登录、.sh文件后缀运行、l l命令结果说明、VIM模式切换
目录 SSH远程登录..sh文件后缀运行.l l命令结果说明.VIM模式切换 SSH远程安全登录 .sh文件后缀运行 l l命令结果说明 VIM模式切换 SSH远程登录..sh文件后缀运行.l l命令 ...
- python 字典 day6
字典 :键与值用:分开 项与项用,分开 特点:key-value结构‘ key为不可变数据类型,key必须唯一 可以任意存放多个value值 ,可以不唯一,可修改 无序 查询速度极快 且不受di ...
- webdriver中的定位\模拟\及实例
Selenium webdriver 下载 pip install selenium pip install -i https://pypi.doubanio.com/simple/ selenium ...