首页 > 其他 > 详细

【博弈专题】解题报告

时间:2014-04-08 18:37:45      阅读:467      评论:0      收藏:0      [点我收藏+]

HDU1079 Calendar Game

  设k=m+d,容易知道,终态2001.11.4为P局面(后手胜),此时k=11+4=15,为奇态。我们不妨假设:如果k为寄态,先手胜;k为偶态,后手胜。对于一年中某个日子,其后一天或者下个月同一天都是k的奇偶转换,对于先手来说,如果此时k为奇态,则必胜;如果为偶态,则看是否能给后手也留下一个偶态让其处于N局面(先手胜)。一年中可以偶态到偶态的日子只有4个:4.30、6.30、9.30、11.30。这4个日子虽然k为偶数,但也属于先手胜局面,因为这四个日子能给对方留下k偶态。

bubuko.com,布布扣
#include <stdio.h>
#include <string.h>

int main()
{
    int y, m, d, t;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d%d%d", &y, &m, &d);
        int k = m + d;
        if(((m==4||m==6||m==9||m==11)&&d==30)||k % 2 == 0)
            puts("YES");
        else
            puts("NO");
    }
    return 0;
}
View Code

 

HDU1564 Play a game

  n为偶数则8600胜,n为奇数则ailyanlu胜。

证明:如下图

bubuko.com,布布扣

  对于两个图,我们用1x2的矩形进行覆盖,当一个人走到一个新的1x2方块时,另一个人为必胜者,因为他总可以走该方块的另一个格子。

bubuko.com,布布扣
#include <stdio.h>
#include <string.h>

int main()
{
    int x;
    while(scanf("%d", &x) != EOF && x)
    {
        if(x % 2 == 0)
            puts("8600");
        else
            puts("ailyanlu");
    }
    return 0;
}
View Code

 

  

 

【博弈专题】解题报告,布布扣,bubuko.com

【博弈专题】解题报告

原文:http://www.cnblogs.com/huangfeihome/p/3651619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!