题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1079

题解:题目大意,两个人Adam和Eve一块儿玩游戏,游戏规则是从1900年1月1日到2001年11月4日这个时间段内随机选择一天,由Adam开始轮流选择,可以选择后一天,也可以选择下个月的这一天,轮流进行,最后一个选择2001年11月4日的人获得胜利,随机给一个日期,问Adam是否会获胜。

  恩,看到题目确实被吓到了,有点不知道从何下手的感觉,还有闰月的干扰,看见别人的分析才明白这个问题实质很简单,可以转化为奇偶问题。

  记 sum = ( m + d ), 其中m为月份, d为日期,对于每次选择,会有以下三种结果:

  1)日期加一,且没有超过本月日期,sum = sum + 1(奇偶性改变)

  2)月份加一,sum = sum + 1(奇偶性改变)

  3)日期加一,超过本月日期,sum = nextm + 1(奇偶性不一定)

  针对第三种情况进行分析,对于每月的最后一天,可以分为如下四类:

  1)奇+1 = 奇  9.30    11.30

  2)奇+1 = 偶  2.29(闰) 6.30    8.31    10.31  12.31

  3)偶+1 = 偶  2.28    4.30

  4)偶+1 = 奇  1.31    3.31    5.31    7.31

  现对题目进行分析,11月4日为奇数,之前选择的人为偶数日期,即偶数为有利局势,奇数为不利局势,有利局势的人必然不会改变自己的有利局势,而处于不利局势的人必然想要逆转不利局势,即如果Eve处于不利局势,他会希望通过自己的选择,使Adam处于不利局势,而这样的局势只有9.30和11.30两天,而处于优势局势的人必然不会使局势变为这两个日期,所以Adam想获胜必然是初始日期为偶数,或者一开始就是9.30或11.30。

  一个游戏最终转化为含有特殊点的奇偶性问题。

 #include<stdio.h>
 int main(){
     int T;
     int d, m, y;
     scanf("%d",&T);
     ; i < T; ++i){
         scanf("%d%d%d",&y,&m,&d);
          ==  || ( ( m ==  || m == ) && d ==  ) )
             puts("YES");
         else
             puts("NO");
     }
 }

(博弈论)hdoj 1079 Calendar Game的更多相关文章

  1. HDU 1079 Calendar Game (博弈论-sg)

    版权声明:欢迎关注我的博客,本文为博主[炒饭君]原创文章.未经博主同意不得转载 https://blog.csdn.net/a1061747415/article/details/32336485 C ...

  2. poj 1079 Calendar Game(博弈论 SG)

    Calendar Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  3. HDU 1079 Calendar Game(简单博弈)

    Calendar Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  4. Hdu 1079 Calendar Game

    Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1079 一道博弈题.刚开始想用判断P点和N点的方法来打表,但无奈不知是哪里出错,总是WA.于是 ...

  5. HDU 1079 Calendar Game (博弈)

    Calendar Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  6. HDU 1079 Calendar Game(规律博弈)

    题目链接:https://cn.vjudge.net/problem/HDU-1079 题目: Adam and Eve enter this year’s ACM International Col ...

  7. HDU 1079 Calendar Game(博弈找规律)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1079 题目大意:给你一个日期(包含年月日),这里我表示成year,month,day,两人轮流操作,每 ...

  8. hdu 1079 Calendar Game sg函数 难度:0

    Calendar Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  9. (step 8.2.8)hdu 1079(Calendar Game)

    题目大意是: 两个家伙在区域赛前夕闲的无聊,然后玩一种无限纠结的游戏,随即给定一个日期,每次只能移动day OR month.......... 而且如果下一个月没有当前day的话, 你就不能移动mo ...

随机推荐

  1. python处理ajax请求

    先要起一个服务 server.py,可以支持python的cgi脚本. #!coding:utf8 from BaseHTTPServer import HTTPServer from CGIHTTP ...

  2. mysql装载本地文件及模式匹配

    使用load data装载本地文件到表中,文件每行一条记录,列值之间用tab分隔,并按照次序一一列出,对于无值或丢失的情况可以使用\N.但是在使用insert into插入的时候不能使用\N,而应该是 ...

  3. java-过滤器-监听器-拦截器

    1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml ...

  4. 【NYOJ-35】表达式求值——简单栈练习

    表达式求值 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min ...

  5. 【转】iOS开发-Protocol协议及委托代理(Delegate)传值

    原文网址:http://www.cnblogs.com/GarveyCalvin/p/4210828.html 前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来 ...

  6. Ruby on rail 开发准备

    下载安装Instant Rails ,该软件包中包含了Ruby,Rails,Apache(HTTP服务器软件),MySql,并且配置均可自动完成.完成安装后就可以拥有一个完整的Rails开发环境.下载 ...

  7. mkdir -p命令

    如果要创建目录A并创建目录A的子目录B,没有用-p的情况下是mkdir 2次如果用-p 可以直接创建2个目录 mkdir -p 目录A/子目录B就可以

  8. mysql的password()函数和md5函数

    password用于修改mysql的用户密码,如果是应用与web程序建议使用md5()函数, password函数旧版16位,新版41位,可用select length(password('12345 ...

  9. uglifyjs使用

    1.安装Nodejs:去这里下载并安装. 2.打开cmd,运行npm,node应该会有输出东西 3.如果在window上运行Node.js的npm报Error: ENOENT, stat 'C:\Us ...

  10. vs2012编译出错“LC.exe”已退出解决方法

    “LC.exe”已退出,代码为 -1. 解决方法: 将项目Properties下的licenses.licx文件删除,重新编译即可.