HDU 1079 Calendar Game 博弈

题目大意:从1900年1月1日 — 2001年11月4日间选择一天为起点,两个人依次进行两种操作中的任意一种,当某人操作后为2001年11月4日时,该人获胜。问先手是否获胜

操作1:向后移一天

操作2:向后移一月

 

题目思路:设:op=month+day,除了9.30和11.30外无论进行哪一种操作都会改变op的奇偶性,而11+4=15所以起点为偶数(9.30,11.30除外)时先手胜,且先手此时可以避免对手选中9.30和11.30(因为后手总是面临奇数局面,先手可以避免选中9.29和11.29)。

 

题目代码

复制代码
#include<stdio.h>
int main()
{
    int T,year,month,day;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d%d",&year,&month,&day);
        if((month==9 || month==11) && day==30) printf("YES\n");
        else
        {
            int op=month+day;
            if(op%2==0)
                printf("YES\n");
            else
                printf("NO\n");
        }
    }
    return 0;
}
View Code
复制代码

 

posted @   声声醉如兰  阅读(118)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示