3521 - 不服sala第三部

小涛上次sala输给了小明。为了复仇,他们第二天继续sala。小涛叫来了他的好闺蜜——数学课代表小红(小学生都这么恐怖了……)

不过这次sala的不是英雄联盟了,而是……这么一个游戏。

先由小红数一个0,之后两人交替数数,每次在前一个人数的基础上往后数一个数或两个数,谁能数到数字30谁就获胜。

在经过几次游戏之后,小明发现他永远赢不了游戏(你的计谋呢,你的担架呢?),数学课代表的力量太强大了,怪不得小涛找她当闺蜜- -。于是他们决定改变一下游戏的规则。

他们随机选定两个数字mx,还是由小红先数一个数0,之后两人交替数数,每次可以在前一个人数的基础上往后数1m个数,谁先数到数x谁就获胜。

现在已知两人都绝顶聪明,请问谁有必胜的策略?

PS:这貌似是某年某省小学奥数比赛的原题。

题目输入

第一行有一个整数n,代表输入实例有n组。接下来的n行,每行两个整数m(1<=m<=100)x(1<=x<=10000),如题目所述。

题目输出

对于每组输入实例,请输出谁有必胜的策略,如果小明必胜,请输出“Xiaoming”,如果小红必胜,请输出“Xiaohong”。

输入/输出样例

题目输入

3
2 30
1 1
13 14

题目输出

Xiaohong
Xiaoming
Xiaohong

C语言解答

#include<string.h>
#include<stdio.h>
int main()
{char a[10000];
int n,i,j,k,m;
scanf("%d",&n);
while(n--){
int a,b;
scanf("%d%d",&a,&b);
if(b%(a+1)==0) printf("Xiaohong\n");
else printf("Xiaoming\n");
}
}


C++解答

#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
//    ifstream cin;
//    ofstream cout;
//    cin.open("i.in");
//    cout.open("i.out");
    int n;
    cin>>n;
    while(n--)
    {
        int m,x;
        cin>>m>>x;
        if(x%(m+1)==0)
            cout<<"Xiaohong"<<endl;
        else
            cout<<"Xiaoming"<<endl;
    }
}

时间限制 1 秒
内存限制 64 MB
讨论 统计
上一题 下一题