1. [USACO Open09] 数字的游戏

    ★☆ 输入文件:cdgame.in 输出文件:cdgame.out 简单对比

    时间限制:1 s 内存限制:128 MB

    Bessie正跟FJ玩一个数字游戏,她想让你帮她赢。

    游戏的第i局由一个整数N_i(1 <= N_i <= 1,000,000)开始,Bessie先手,接下来两个人交替进行,轮到谁时,她(他)可以在当前整数中挑一个最大的或最小的非零数字,并减去该数字,所得的差成为新的游戏数。比如若当前整数为3014,我们可以从中减去最大数字4或最小非零数字1,得数为3010或3013。每一局游戏以得到数0为结束,而得0的选手为胜利一方。

    Bessie与FJ一共要玩G(1 <= G <= 100)局,请确定每局游戏的胜者,假定他们两个都玩得很好(这意味着每轮到一方执手,他都会怎么能赢就怎么做)。

    举个例子:起初N_i=13,Bessie先手,她选了数字3,减去后得10,FJ只能选数字1,减去后得9,Bessie选数字9,减去后得到0,Bessie赢。

    输入格式:

    第1行:一个整数G;

    第2~G+1行:第i+1行包含一个整数N_i;

    输出格式:

    共G行,如果第i局Bessie赢则在第i行输出”YES”,如果Bessie不能赢则第i行的输出为”NO”。

    输入输出样例:

    cdgame.in

    2

    9

    10

    cdgame.out

    YES

    NO

    输出样例解释:

    第一局,Bessie只需选9减去即赢;第二局,Bessie只能选1(不能选0),然后FJ选9减去即赢。
/*
博弈.
递推sg函数.
显然1~9都是必胜态.
显然操作后数都会变小.
如果一个状态的后继状态有必败态,
那么它就是必胜态.
否则就是必败态.
*/
#include<iostream>
#include<cstdio>
#define MAXN 1000001
using namespace std;
int n,max1,min1,sg[MAXN];
void pre()
{
for(int i=1;i<=9;i++) sg[i]=1;
for(int i=10;i<=MAXN-1;i++)
{
int x=i;
min1=10,max1=0;
while(x)
{
int xx=x%10;
x/=10;
if(xx) min1=min(xx,min1);
if(xx) max1=max(max1,xx);
}
if(!sg[i-min1]||!sg[i-max1]) sg[i]=1;
else sg[i]=0;
}
}
int main()
{
freopen("cdgame.in","r",stdin);
freopen("cdgame.out","w",stdout);
int x;
pre();scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
if(sg[x]) printf("YES\n");
else printf("NO\n");
}
return 0;
}

Cogs 763. [USACO Open09] 数字的游戏(博弈)的更多相关文章

  1. Java基础知识强化之IO流笔记70:Properties练习之 如何让猜数字小游戏只能玩5次的案例

    1. 使用Properties完成猜数字小游戏只能玩5次的案例: 2. 代码实现: (1)猜数字游戏GuessNumber: package cn.itcast_08; import java.uti ...

  2. 洛谷P1118 数字三角形游戏

    洛谷1118 数字三角形游戏 题目描述 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直 ...

  3. java猜数字小游戏

    /* * * 猜数字小游戏 * * 先由系统生成一个2-100之间的随机数字, * * 然后捕获用户从控制台中输入的数字是否与系统生成的随机数字相同, * * 如果相同则统计用户所猜的次数,并给出相应 ...

  4. 简单的C语言猜数字小游戏

    猜数字小游戏可谓是C语言最为基础的一个知识点了,我们可以在此基础上进行延伸,实现随机数的猜测,然后是加入再来一局的模式,等等.这里是抛砖引玉,希望你能做出你的经典之作. #include <st ...

  5. python 游戏(数字推理游戏Bagels)

    1.游戏思路和流程图 实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确) 游戏流程图 2. 使用模块和游戏提示 import ...

  6. jquery开发的数字相加游戏(你能玩几分)

    jquery开发的数字相加游戏,我在一轮中玩了632分(如下图),你能玩几分,哈哈... 我要试一试 下面贡献下这款“数字相加游戏”的开发过程. html部分: <div class=" ...

  7. 一款纯css3实现的数字统计游戏

    今天给大家分享一款纯css3实现的数字统计游戏.这款游戏的规则的是将所有的数字相加等于72.这款游戏的数字按钮做得很美观,需要的时候可以借用下.一起看下效果图: 在线预览   源码下载 实现的代码. ...

  8. 洛谷P1132 数字生成游戏

    P1132 数字生成游戏 题目描述 小明完成了这样一个数字生成游戏,对于一个不包含0的数字s来说,有以下3种生成新的数的规则: 将s的任意两位对换生成新的数字,例如143可以生成314,413,134 ...

  9. 【转】Java数字抽奖游戏核心代码

    1. [代码][Java]代码    package com.luiszhang.test; import java.util.Arrays; /** * NumberLotteryGame * 一个 ...

随机推荐

  1. js的for循环中出现异步函数,回调引用的循环值始终是最后的值

    一.问题 今天工作中解决bug发现是由“for循环的异步函数,回调引用的循环值始终是最后的值”的现象导致的,如: for (var i = 0; i < files.length; i++) { ...

  2. iframe 边框(界面技术)

    一.iframe 的边框很难看,想去掉,使用CSS的border:none在IE(8)上没有,只能用iframe 自带属性frameBorder="0"来设置. 二.iframe与 ...

  3. python-django中使用事务以及小坑

    django中使用事务 一.导入事务模块 from django.db import transaction 二.对相应的业务进行事务操作 方式一:为整个函数进行事务操作 @transaction.a ...

  4. 试用一款网荐的 iOS 快速布局UI库

      NerdyUI github: https://github.com/nerdycat/NerdyUI Cupcake (Swift 版本) github: https://github.com/ ...

  5. UCOSIII内建消息队列

    使能内建消息队列 将OS_CFG_TASK_Q_EN置1 API函数 #if OS_CFG_TASK_Q_EN > 0u //删除 OS_MSG_QTY OSTaskQFlush (OS_TCB ...

  6. orangepi自启动打开一个终端并且运行脚本

    第一步: 在 /home/pi/.config 下创建一个文件夹,名称为 autostart,如果已经存在则不需要创建 第二步: 在autostart文件夹中创建桌面启动项文件,(文件名以 .desk ...

  7. Mariadb 介绍 1 (安装)

    引言: mariadb是是由开源社区维护,在这我会从安装到实战都会介绍到.后期所有用到mysql数据库的项目我会全用mariaDB来替换,实际使用中的区别我会标出,请大家注意 MariaDB: Mar ...

  8. Python基础Day1—下

    六.Python运行 print()   打印命令,输出到屏幕上 操作: 命令提示符-->输入Python-->文件路径 若输入Python回车报错或者提示没有,则Python解释器没有安 ...

  9. 修改CentOS的YUM源

    CentOS配置本地yum源/阿里云yum源/163yuan源并配置yum源的优先级 1.查看本地yum源 2.把默认yum源备份 mkdir /opt/centos-yum.bak mv /etc/ ...

  10. shell脚本——正则表达式

    什么是正则表达式 正则表达式分为基础正则和扩展正则,都是为了匹配符合预期要求的字符串 正则表达式与通配符的区别 只需要记住,对文件内容或是展示文本的操作都是正则,而对目录或文件名的操作则都是通配符(例 ...