(紀中)1596. 【GDKOI2004】石子游戲(game)

(File IO): input:game.in output:game.out
時間限制: 1000 ms 空間限制: 262144 KB 具體限制
Goto ProblemSet


題目描述
小勇和小實是對好朋友,他們經常一起遊戲。 今天他們玩的遊戲是這樣的:有一個由正方形石頭鋪成的地板,它的高是22,長度是NN。 例如以下是N=3N=3的情況:
在這裏插入圖片描述
現在他們輪流在上面放上長寬分別是1122的矩形石塊,可以橫放也可以豎放,但要剛好鋪在地板上兩個未被覆蓋的正方形石頭上,當某人不能放上去時他就輸了。
例如,某次遊戲可能是這樣的,小實橫放石塊在左上面,如下:
在這裏插入圖片描述
然後小勇橫放石塊在右下面,如下:
在這裏插入圖片描述
這時小實不能再放石塊了,所以他輸了。小勇比較禮讓,他讓小實先放。當然,以上的方法可能不是最好的,現在假如他們都絕頂聰明,請你編程判斷究竟誰會贏。


輸入
第一行一個整數C(1<=C<=100)C(1<=C<=100),表示測試數據的個數。 接下來有CC行,每行爲一個測試數據,每個測試數據只有一個整數N(1<=N<=100)N(1<=N<=100)

輸出
輸出CC行,每行輸出相應測試數據的結果。對於每個結果,如果是小勇贏的話就輸出xiaoyongxiaoyong,否則就是小實贏啦,輸出xiaoshixiaoshi


樣例輸入
1
1

樣例輸出
xiaoshi


數據範圍限制


解題思路
石子游戲的最優策略是這樣的,假如先放,就豎放,否則就根據對方的方法來放,這時,如果對方橫放,則在其正上方或正下方橫放一石子,如如果對方豎放,也就豎放,按這個方法,很容易得到這個結論:當n爲奇數時小實贏,否則小勇贏。


代碼

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
int c,n;
int main(){
    freopen("game.in","r",stdin);
    freopen("game.out","w",stdout);
    scanf("%d",&c);
    for(int i=1;i<=c;i++)
    {
        scanf("%d",&n);
	if(n%2!=0)
	   printf("xiaoshi\n");
	else
	   printf("xiaoyong\n");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章