题目链接: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. iOS中第三方框架刷新

    0.先加入主头文件 #import "MJRefresh.h" 1.添加下拉刷新 MJRefreshHeaderView *header = [MJRefreshHeaderVie ...

  2. HDU 5326 work (回溯,树)

    题意:给一棵树,每个结点的子树下的结点都是它的统治对象,问有多少个统治对象数目为k的结点? 思路:每个结点都设一个cnt来记数,只要将每个结点往上回溯,直到树根,经过的每个结点都将计数器加1.最后再扫 ...

  3. erl0008 - unicode 和 utf-8之间的关系

    转载:http://blog.jobbole.com/84903/ 原文出处: 卢钧轶   欢迎分享原创到伯乐头条 本文将简述字符集,字符编码的概念.以及在遭遇乱码时的一些常用诊断技巧. 背景:字符集 ...

  4. Java自增原子性问题(测试Volatile、AtomicInteger)

    这是美团一面面试官的一个问题,后来发现这是一道面试常见题,怪自己没有准备充分:i++;在多线程环境下是否存在问题?当时回答存在,接着问,那怎么解决?...好吧,我说加锁或者synchronized同步 ...

  5. JSTL笔记(胖先生版)

    今天系统的学习了一下jstl,来记录一下. 在学习jstl以前,先要引两个jar包,然后再加入标签: <%@ taglib prefix="c" uri="http ...

  6. window 与ubuntu共享文件 hgfs下为空和不用每次挂载hgfs的方法

    解决hgfs为空的方法: sudo apt-get install open-vm-dkms sudo mount -t vmhgfs .host:/ /mnt/hgfs 解决每次都要挂载的方法: 1 ...

  7. T-SQL:SQL Server-SQL语句大全经典

    ylbtech-SQL Server-Doc-Help:SQL Server-SQL语句大全经典 SQL Server 流程控制中的 While 语句. 1,SQL语句大全经典返回顶部 .说明:创建数 ...

  8. Dev GridView 获取选中分组下的所有数据行 z

    现在要在DevExpress 的GridView 中实现这样一个功能.就是判断当前的选中行是否是分组行,如果是的话就要获取该分组下的所有数据信息. 如下图(当选中红框中的分组行事.程序要获取该分组下的 ...

  9. 用physdiskwrite在VMware虚拟机上安装m0n0wall【转】

    在一台PC机上安装m0n0wall,相信大家都有经验.一般采用两种方法:1.在一台Windows XP或Windows 2000的PC上,下载physdiskwrite软件和m0n0wall映像文件( ...

  10. spring开发相关网址

    jar包下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/