zoukankan      html  css  js  c++  java
  • 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
    ");
            else
            {
                int op=month+day;
                if(op%2==0)
                    printf("YES
    ");
                else
                    printf("NO
    ");
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    鸡哥的限币令(有上下限的网络流/费用流问题)
    AtCoder Regular Contest 128 部分题题解
    一道题
    2021CCPC河南省赛
    10.26训练赛
    博弈论和SG函数
    10.24训练赛
    10.22训练赛
    CF #749
    atcoder ABC233
  • 原文地址:https://www.cnblogs.com/alan-W/p/6277519.html
Copyright © 2011-2022 走看看