zoukankan      html  css  js  c++  java
  • Codeforces Gym

    I. Rock Piles
    time limit per test
    1.0 s
    memory limit per test
    256 MB
    input
    standard input
    output
    standard output

    Hasan and Abdullah are lost in the desert, they are waiting for the rescue squad to help them. While they are waiting, they decided to invent a new game called Rock Piles.

    In this game, there are two rock piles. The first pile contains N rocks, and the second one contains M rocks. Hasan and Abdullah take turns to play the game, Hasan starts first. In each turn, a player can choose to take one rock from a single pile, or take one rock from both piles. The player who cannot make any move, loses the game. Determine who will win if both of them play optimally.

    Input

    The first line of the input contains an integer T (1  ≤  T  ≤  104), where T is the number of the test cases.

    Each test case has one line that contains two integers N and M (0  ≤  NM  ≤  109), the number of rocks in the first and second pile respectively.

    Output

    For each test case, print a single line with the winner's name. If Hasan wins print "hasan", otherwise print "abdullah" (without quotes).

    Example
    input
    2
    2 3
    4 0
    output
    hasan
    abdullah

     威佐夫博弈的变形  变形了那跟原来的关系应该就不大了 在纸上写了几个状态没发现规律 只好SG函数打表

    打出表后规律一下就清楚了

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    #include <queue>
    #include <vector>
    #include <iomanip>
    #include <math.h>
    #include <map>
    using namespace std;
    #define FIN     freopen("input.txt","r",stdin);
    #define FOUT    freopen("output.txt","w",stdout);
    #define INF     0x3f3f3f3f
    #define INFLL   0x3f3f3f3f3f3f3f
    #define lson    l,m,rt<<1
    #define rson    m+1,r,rt<<1|1
    typedef long long LL;
    typedef pair<int, int> PII;
    using namespace std;
    
    const int maxn = 10000 + 5;
    /*
    void GetSG(int n = 100, int m = 100) {
        int i, j;
        memset(SG, 0, sizeof(SG));
        for(i = 0; i <= n; i++) {
            for(int j = 0; j <= m; j++) {
                memset(Hash, 0, sizeof(Hash));
                if(i >= 1) Hash[SG[i - 1][j]] = 1;
                if(j >= 1) Hash[SG[i][j - 1]] = 1;
                if(i >= 1 && j >= 1) Hash[SG[i - 1][j - 1]] = 1;
                for(int k = 0; k <= n; k++) {
                    if(Hash[k] == 0) {
                         SG[i][j] = k;
                         break;
                    }
                }
            }
        }
    }
    */
    int main() {
        //FIN
        int n, m;
        int T;
        scanf("%d", &T);
        while(T--) {
            scanf("%d%d", &n, &m);
            if(n % 2 == 0 && m % 2 == 0) puts("abdullah");
            else puts("hasan");
        }
    
        return 0;
    }
    

      

  • 相关阅读:
    绿色版 notepad++ 添加鼠标右键菜单
    Scala 安装与配置
    Scala 神奇的下划线 _
    Kafka 安装部署
    Pulsar 下一代消息平台
    Sqoop 安装部署
    Flume 常用配置项
    Android-selector
    android- 9patch
    有关内存的思考题
  • 原文地址:https://www.cnblogs.com/Hyouka/p/7445986.html
Copyright © 2011-2022 走看看