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;
    }
    

      

  • 相关阅读:
    Field 'id' doesn't have a default value错误解决方法
    jQuery:详解jQuery中的事件(一)
    Javascript:Javascript数据类型详解
    CSS:CSS样式表及选择器优先级总结
    Javascript:JSON总结
    CSS:CSS使用Tips
    Git:Git初体验——Git安装配置
    CSS:使用CSS媒体查询创建响应式布局
    多人操作sqlite3数据库冲突问题解决方法
    c++获取sqlite3数据库表中所有字段的方法
  • 原文地址:https://www.cnblogs.com/Hyouka/p/7445986.html
Copyright © 2011-2022 走看看