题目

因为可能要参加qbxt的数论考试,所以最近要开始猛刷数论题了。

这是第一道,不过看样子并不想数论题啊,只是一个博弈论。

思路

一位著名老师说过,数学就是转化和化简,所以先考虑化简,先考虑化简年份,因为无论从闰年到普通年都是偶数个月,所以年份没有影响。

然后就来判断月份,我们发现11.4输,则11.3赢,10.4赢,9.4输 等等,很容易得出month + day如果是奇数的话是必输的,但是考虑特殊情况即30号情况,发现10.30是输的,所以9.30,11.30必赢。

\(Code\)

#include <bits/stdc++.h>
using namespace std;
bool ha[120][120];//i表示月,j表示day
int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= 100; i++)
        for (int j = 1; j <= 100; j++)
        {
            if ((i + j ) % 2 == 0 || (i == 9 && j == 30) || (i == 11 && j == 30))
                ha[i][j] = 1;
        }
    while (n--)
    {
        int a, b, c;
        cin >> a >> b >> c;
        if (ha[b][c])
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}

相关文章:

  • 2021-12-28
  • 2022-02-17
  • 2022-02-18
  • 2021-07-10
  • 2022-03-04
  • 2022-01-14
  • 2022-02-06
  • 2022-12-23
猜你喜欢
  • 2021-09-10
  • 2022-12-23
  • 2021-06-11
  • 2021-08-22
  • 2022-03-06
  • 2022-02-17
  • 2021-07-25
相关资源
相似解决方案