sg大法好 无脑sg即可,不用去找规律了。

 /*--------------------------------------------------------------------------------------*/

 #include <algorithm>
#include <iostream>
#include <cstring>
#include <ctype.h>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <string>
#include <queue>
#include <stack>
#include <cmath>
#include <set>
#include <map> //debug function for a N*M array
#define debug_map(N,M,G) printf("\n");for(int i=0;i<(N);i++)\
{for(int j=;j<(M);j++){\
printf("%d",G[i][j]);}printf("\n");}
//debug function for int,float,double,etc.
#define debug_var(X) cout<<#X"="<<X<<endl;
#define LL long long
const int INF = 0x3f3f3f3f;
const LL LLINF = 0x3f3f3f3f3f3f3f3f;
const double eps = 1e-;
/*--------------------------------------------------------------------------------------*/
using namespace std; int N,M,T;
int days[] = {,,,,,,,,,,,,};
int mem[][][]; bool leap(int yy)
{
return ((yy%== && yy%!=)|| (yy%== && yy%==));
} int sg(int yy,int mm,int dd,int dep)
{
//for(int i=0;i<dep;i++) printf("-");
//printf("%d:%d:%d\n",yy,mm,dd); if(yy== && mm== && dd==) return ;
if(yy > || (yy==&&mm>) || (yy==&&mm==&&dd>)) return -;
if(mem[yy][mm][dd] != -) return mem[yy][mm][dd];
set<int> st;
//+1 month
if(mm== && dd== && leap(yy)) st.insert(sg(yy,,,dep+));
else if(days[(mm== ? : mm+) ] >= dd ) st.insert(sg(mm==?yy+:yy,mm==?:mm+,dd,dep+) ); //+1 day
if(mm == && dd == ) st.insert(sg(yy+,,,dep+));
else if(mm== && dd == && leap(yy)) st.insert(sg(yy,,,dep+));
else if(mm== && dd == && !leap(yy)) st.insert(sg(yy,,,dep+));
else if(dd == days[mm]) st.insert(sg(yy,mm+,,dep+));
else st.insert(sg(yy,mm,dd+,dep+)); int g = ;
while(st.find(g) != st.end()) g++;
return mem[yy][mm][dd] = g;
} int main()
{
//freopen("output.txt","w",stdout);
scanf("%d",&T);
memset(mem,-,sizeof mem);
while(T--)
{
int yy,mm,dd;
scanf("%d%d%d",&yy,&mm,&dd);
printf("%s\n",sg(yy,mm,dd,)?"YES":"NO");
}
}

poj1082-Calendar Game-博弈/sg的更多相关文章

  1. S-Nim HDU 1536 博弈 sg函数

    S-Nim HDU 1536 博弈 sg函数 题意 首先输入K,表示一个集合的大小,之后输入集合,表示对于这对石子只能去这个集合中的元素的个数,之后输入 一个m表示接下来对于这个集合要进行m次询问,之 ...

  2. poj1082 Calendar Game (博弈)

    题意是:Adam和Eve两人做游戏,开始给出一个日期,截止日期是2011.11.4,游戏规则如下: 每个人只能将天数增加一天或者将月份增加一天.如果下个月没有这一天,那么只能增加天数. 游戏胜利定义为 ...

  3. 博弈SG

    先转一篇看得比较懂的,以后有时间自己再归纳下 转自:http://blog.csdn.net/logic_nut/article/details/4711489 博弈问题若你想仔细学习博弈论,我强烈推 ...

  4. BZOJ-1228 E&D 博弈SG+找啊找啊找规律

    讨厌博弈,找规律找半天还是错的.... 1228: [SDOI2009]E&D Time Limit: 10 Sec Memory Limit: 162 MB Submit: 666 Solv ...

  5. hdu 3032(博弈sg函数)

    题意:与原来基本的尼姆博弈不同的是,可以将一堆石子分成两堆石子也算一步操作,其它的都是一样的. 分析:由于石子的堆数和每一堆石子的数量都很大,所以肯定不能用搜索去求sg函数,现在我们只能通过找规律的办 ...

  6. HDU-4678 Mine 博弈SG函数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4678 题意就不说了,太长了... 这个应该算简单博弈吧.先求联通分量,把空白区域边上的数字个数全部求出 ...

  7. uva 1557 - Calendar Game(博弈)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=4332" target="_blank ...

  8. Crazy Calendar (阶梯博弈变形)

    2011 was a crazy year. Many people all over the world proposed on 11-11-11, married on 11-11-11, som ...

  9. (博弈 sg入门2)

    接下来介绍Nim游戏(同样引用杭电上的,懒的打字) 1.有两个玩家:   2.  有三堆扑克牌(比如:可以分别是    5,7,9张):  3. 游戏双方轮流操作:  4. 玩家的每次操作是选择其中某 ...

  10. (转)博弈 SG函数

    此文为以下博客做的摘要: https://blog.csdn.net/strangedbly/article/details/51137432 ---------------------------- ...

随机推荐

  1. apache 开启zgip 压缩模式

    一.Apache开启gzip压缩模式在目录apache\conf\httpd.conf 配置 httpd.conf 文件: #去掉LoadModule deflate_module modules/m ...

  2. ssis trainning

    1. 防止包打开后hang住,可以使用delay validation=false. 2.2008R2 configuration 起作用的优先级? 一是des ign time. 二是运行的时候指定 ...

  3. 再学TSQL基础--单表查询

    本内容是我学习tsql2008的阅读笔记 什么是关系模型? 若对列创建唯一约束,背后中的物理机制也是创建了一个唯一索引. SQL语句的逻辑解析顺序是FROM WHERE GROUP BY HAVING ...

  4. HDU 3333 Turing Tree --树状数组+离线处理

    题意:统计一段序列[L,R]的和,重复元素只算一次. 解法:容易看出在线做很难处理重复的情况,干脆全部讲查询读进来,然后将查询根据右端点排个序,然后离散化数据以后就可以操作了. 每次读入一个数,如果这 ...

  5. bootstrap学习总结-js组件(四)

    这次我们来看下js组件的使用,本篇文章会有点长,希望大家可以耐心看,相信收获会有不少.不少园友加我好友,表示喜欢我写文字的风格,简单明了,这里,再次谢谢你们的支持.一方面,博主自身技术有限,写的东西都 ...

  6. Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  7. Linux安装Redis

    环境:Centos 6.2 redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value ...

  8. java 21 - 8 复制文本文件的5种方式

    需求:复制文本文件 分析: 由于文本文件我们用记事本打开后可以读懂,所以使用字符流. 而字符流有5种复制的方式: 首先写main方法 public static void main(String[] ...

  9. java 8-5 抽象

    1. 抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须是抽象类. 抽象类的特点: A:抽 ...

  10. CSS3中的字体rem

    rem和em都是相对单位,em相对父元素的font-size来计算,而rem是根据文档根元素(html)的font-size大小来计算的 通常将html的字体大小设为62.5%(等于10px),当然也 ...