(博弈论)hdoj 1079 Calendar Game
题目链接: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的更多相关文章
- HDU 1079 Calendar Game (博弈论-sg)
版权声明:欢迎关注我的博客,本文为博主[炒饭君]原创文章.未经博主同意不得转载 https://blog.csdn.net/a1061747415/article/details/32336485 C ...
- poj 1079 Calendar Game(博弈论 SG)
Calendar Game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDU 1079 Calendar Game(简单博弈)
Calendar Game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- Hdu 1079 Calendar Game
Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1079 一道博弈题.刚开始想用判断P点和N点的方法来打表,但无奈不知是哪里出错,总是WA.于是 ...
- HDU 1079 Calendar Game (博弈)
Calendar Game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- HDU 1079 Calendar Game(规律博弈)
题目链接:https://cn.vjudge.net/problem/HDU-1079 题目: Adam and Eve enter this year’s ACM International Col ...
- HDU 1079 Calendar Game(博弈找规律)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1079 题目大意:给你一个日期(包含年月日),这里我表示成year,month,day,两人轮流操作,每 ...
- hdu 1079 Calendar Game sg函数 难度:0
Calendar Game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- (step 8.2.8)hdu 1079(Calendar Game)
题目大意是: 两个家伙在区域赛前夕闲的无聊,然后玩一种无限纠结的游戏,随即给定一个日期,每次只能移动day OR month.......... 而且如果下一个月没有当前day的话, 你就不能移动mo ...
随机推荐
- 13行代碼開發出来的PHP框架[转]
<?PHP /** PHP極簡框架 交流: QQ群: 223494678 http://7di.net 用法 http://URL http://URL/hello http://URL/sev ...
- 06day2
蠕虫游戏 模拟 [问题描述] 蠕虫是一个古老的电脑游戏,它有许多版本.但所有版本都有一个共同规则:操纵一条蠕虫在屏幕上转圈,并试着去避免撞到自己或障碍物. 这里我们将模拟一个简单的版本.游戏将在 50 ...
- @Repository @Resource
Spring的注解形式:@Repository.@Service.@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean. @Repository.@Service.@C ...
- Mac设置截图保存位置
补充: killall 用来杀死指定名字的进程 defaults 可以对一些系统属性进行read,write,delete操作 下面举几个常用的例子: 1.显示隐藏文件 defaults write ...
- JSONP实例
JSONP实例 package sus.app; import java.io.IOException; import java.util.Map; import javax.servlet.http ...
- linux系统上Mysql数据库导入导出操作
需求:把MySQL数据库目录中的dz数据库备份到/home/dz_bak.sql ,然后再新建一个数据库dzbak,最后把/home/dz_bak.sql 导入到数据库dzbak中.操作如下:以下操作 ...
- Linux makefile教程之后序十一[转]
后序 —— 终 于到写结束语的时候了,以上基本上就是GNU make的Makefile的所有细节了.其它的产商的make基本上也就是这样的,无论什么样的make,都是以文件的依赖性为基础的,其基本是都 ...
- linux清空日志文件内容 (转)
随着系统运行时间越来越长,日志文件的大小也会随之变得越来越大.如果长期让这些历史日志保存在系统中,将会占用大量的磁盘空间.用户可以直接把这些日志文件删除,但删除日志文件可能会造成一些意想不到的后果.为 ...
- 细雨学习笔记:JMeter 的主要测试组件总结
1. 测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在Sampler中定义, ...
- 文件的压缩与解压XZip,XUnzip
参考http://www.codeproject.com/KB/cpp/xzipunzip.aspx CreateZip() –创建一个空的 zip 文件 HZIP CreateZip(void *z ...