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 $ ...
随机推荐
- 文本段落缩进text-indent:2em
中文文字中的段前习惯空两个文字的空白,这个特殊的样式可以用下面代码来实现: p{text-indent:2em;} <p>1922年的春天,一个想要成名名叫尼克卡拉威(托比?马奎尔Tobe ...
- HTTP 1.1状态代码及其含义
HTTP 1.1状态代码及其含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分.(HTTP 1.1新) 101 Switching Protocols 服务器将 ...
- 7.【Spring Cloud Alibaba】微服务的用户认证与授权
有状态 vs 无状态 有状态 那么Session在何时创建呢? 当然还是在服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法,而在Java中是通过调用HttpServ ...
- Java中的合并与重组(上)
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习. 虽然在Git中合并和重组是相似的,但它们具有两种不同的功能. 要保持自己的历史记录整洁或完整,这是你应该 ...
- Python—TCP的黏包问题以及UDP的分片问题
TCP协议与UDP协议 TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务.收发两端(客户端和服务器端)都要有一一成对的socket, ...
- UI自动化技术在高德的实践
一.背景汽车导航作为ToB业务,需要满足不同汽车厂商在功能和风格上体现各自特色的需求.针对这种情况,传统的UI开发方式,基本上是一对一的特别定制.但是这种方式动辄就要500~600人日的工作量投入,成 ...
- redis集群redis-cluster搭建
redis集群搭建--参考微信公众号(诗情画意程序员):https://mp.weixin.qq.com/s/s5eJE801TInHgb8bzCapJQ 这是来自redis官网的一段介绍,大概意思就 ...
- javascript中如何使用js脚本模拟"request"获取url后参数值呢?
转自:猫猫小屋--js获取url后参数信息 摘要: 下文讲述javascript中使用js代码获取url地址后面的参数值的方法分享,如下所示: 实现思路: 使用正则表达式对参数值进行匹配,获取参数后的 ...
- HTML块级、行级元素,特殊字符,嵌套规则
如果介绍HTML网页基本标签的嵌套规则,首先要说的就是元素的分类.元素可以划分为块级元素和行级元素,块级元素是什么?它可以独占一行,可以设置宽高度,默认是100%:行级元素与之相反,它的内容决定它的宽 ...
- vue-socket.io跨域问题的解决方法
报错信息: Access to XMLHttpRequest at 'http://192.168.37.130:5050/socket.io/?EIO=3&transport=polling ...