判断下一步能否到达必胜态,如果可以当前状态就是必败态,否则当前状态记为必胜态

 #include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
bool p[][][];
int month[] = { , , , , , , , , , , , , }; struct Date{
int y , m , d;
Date(int y= , int m= , int d=):y(y),m(m),d(d){}
}; bool run(int y)
{
return y% == || (y% == && y% != );
} bool ok(int y , int m , int d)
{
if(run(y)) month[]=;
bool flag;
if(d > month[m]) flag = false;
else flag = true;
month[] = ;
return flag;
} Date getLastDay(int y , int m , int d)
{
Date tmp;
tmp.y = y , tmp.m = m , tmp.d =d;
if(run(y)) month[]=;
if(d == ){
if(m == ){
tmp.y--;
tmp.d= , tmp.m =;
}else{
tmp.m--;
tmp.d = month[tmp.m];
}
}
else tmp.d--;
month[] = ;
return tmp;
} Date get_next_month(int y , int m , int d)
{
Date tmp;
tmp.y = y , tmp.m = m , tmp.d =d;
if(m == ) tmp.m= , tmp.y+=;
else tmp.m+=;
return tmp;
} void init()
{
memset(p , , sizeof(p));
p[][][] = true;
Date cur = Date( , , );
while(){
Date la = getLastDay(cur.y , cur.m , cur.d); Date next_month = get_next_month(la.y , la.m , la.d);
bool p1 = p[cur.y-][cur.m][cur.d];
bool p2 = false; if(ok(next_month.y , next_month.m , next_month.d))
p2 = p[next_month.y-][next_month.m][next_month.d];
if(p1 || p2) p[la.y-][la.m][la.d] = false;
else p[la.y-][la.m][la.d] = true; cur.y = la.y , cur.m = la.m , cur.d = la.d;
if(cur.y == && cur.m == && cur.d == ) break;
}
} int main()
{
// freopen("a.in" , "r" , stdin);
int T;
scanf("%d" , &T);
init(); while(T--)
{
int y , m ,d;
scanf("%d%d%d" , &y , &m , &d); if(p[y-][m][d]) puts("NO");
else puts("YES");
}
return ;
}

HDU 1079 简单博弈的更多相关文章

  1. HDU 1564 简单博弈 水

    n*n棋盘,初始左上角有一个石头,每次放只能在相邻的四个位置之一,不能操作者输. 如果以初始石头编号为1作为后手,那么对于每次先手胜的情况其最后一步的四周的编号必定是奇数,且此时编号为偶数,而对于一个 ...

  2. hdu 2897简单博弈

    #include<stdio.h> int main() {     int n,p,q,k;    while(scanf("%d%d%d",&n,& ...

  3. Hdu 1079 Calendar Game

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

  4. ACM: NBUT 1107 盒子游戏 - 简单博弈

     NBUT 1107  盒子游戏 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:  Practice  Appoint ...

  5. HDU 4315 阶梯博弈变形

    n个棋子,其中第k个是红色的,每个棋子只能往上爬,而且不能越过.重叠其他棋子,谁将红色棋子移到顶部谁赢. 由于只能往上爬,所以很像阶梯博弈.这题有2个限制,棋子不能重叠,有红棋存在 首先不考虑红色棋, ...

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

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

  7. hdu 1846 Brave Game 简单博弈

    Problem Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中 ...

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

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

  9. HDU 4642 Fliping game (2013多校4 1011 简单博弈)

    Fliping game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

随机推荐

  1. 状压DP+记忆化搜索 UVA 1252 Twenty Questions

    题目传送门 /* 题意:给出一系列的01字符串,问最少要问几个问题(列)能把它们区分出来 状态DP+记忆化搜索:dp[s1][s2]表示问题集合为s1.答案对错集合为s2时,还要问几次才能区分出来 若 ...

  2. VS2010下安装Opencv 分类: Opencv 2014-11-02 13:51 778人阅读 评论(0) 收藏

    Opencv作为一种跨平台计算机视觉库,在图像处理领域得到广泛的应用,下面介绍如何在VS2010中安装配置Opencv 一.下载Opencv 下载网址:http://sourceforge.net/p ...

  3. Android 线程池系列教程(1)目录

    Sending Operations to Multiple Threads 1.Dependencies and prerequisites Android 3.0 (API Level 11) o ...

  4. Proactive Patching Overview

    1.Proactive Patching Overview Between Patch Set releases, Oracle's proactive patching program provid ...

  5. 关于Swing中JFrame等顶级容器的层次还有设置背景的方式

    资料来自:http://blog.csdn.net/qq_32006373/article/details/49659129 http://yuncode.net/code/c_5196327caac ...

  6. if判断的时候明明是null却不走null的函数体?

    String phoneStr = String.valueOf(parmMap.get(phone.trim())); if(StringUtils.isBlank(phoneStr) || &qu ...

  7. Web前端深思

    WEB视图层技术从最初刀耕火种的时代到如今技术框架丛生,其中的感受只有经历过才知道.但到目前为止前端领域还只是整个IT行业比较边缘化的分支,因为目前的前端coder大多都还停留在视图层的处理上,利用前 ...

  8. ajax跨域上传图片

    前台页面 var data = new FormData(); data.append('file', file); data.append('app', 'goods'); $.ajax({ url ...

  9. 迅为iMX6UL开发板低功耗高能效开发平台

    迅为i.MX 6UL开发板基于ARM Cortex-A7内核,主频高达528 MHz,内存:512MDDR3,存储:8G EMMC,支持2路CAN,2路百兆以太网,4路USB HOST,8路串口,以及 ...

  10. leetcode_238. Product of Array Except Self_思维

    https://leetcode.com/problems/product-of-array-except-self/ 给一个vector<int> nums,输出一个vector< ...