青草遊戲 2018愛奇藝校招

2021-09-11 22:25:14 字數 1284 閱讀 1219

題目描述

牛牛和羊羊都很喜歡青草。今天他們決定玩青草遊戲。

最初有乙個裝有n份青草的箱子,牛牛和羊羊依次進行,牛牛先開始。在每個回合中,每個玩家必須吃一些箱子中的青草,所吃的青草份數必須是4的x次冪,比如1,4,16,64等等。不能在箱子中吃到有效份數青草的玩家落敗。假定牛牛和羊羊都是按照最佳方法進行遊戲,請輸出勝利者的名字。

輸入描述

輸入包括t+1行。

第一行包括乙個整數t(1 ≤ t ≤ 100),表示情況數.

接下來t行每行乙個n(1 ≤ n ≤ 10^9),表示青草份數

輸出描述

對於每乙個n,如果牛牛勝利輸出"niu",如果羊羊勝利輸出"yang"。

示例1

輸入:31

23輸出:niu

yang

niu

演算法分析

方案一:dfs暴力列舉情況求解(超時)

方案二:暴力dfs找規律,發現每5個niu yang niu niu yang乙個週期

dfs找規律:

#include#include#includeusing namespace std;

// 先手勝利

vectorwin(1024, false);

vectorvisit(1024, false);

int dfs(int n)

// 先手有一種情況勝利,都算勝利(因為一定會採取對自己有利的方法)

for (eat_grass >>= 2; eat_grass >= 1; eat_grass >>= 2)

} // 反手勝利

visit[n] = true;

win[n] = false;

return win[n];

}int main()

提交**:

#include #include #include #include using namespace std;

int main()

return 0;

}

愛奇藝校招筆試題 數字遊戲

牛牛舉辦了一場數字遊戲,有n個玩家參加這個遊戲,遊戲開始每個玩家選定乙個數,然後將這個數寫在紙上 十進位制數,無字首零 然後接下來對於每乙個數字將其數字按照非遞減順序排列,得到新的數,新數的字首零將被忽略。得到最大數字的玩家贏得這個遊戲。輸入包括兩行,第一行包括乙個整數n 1 n 50 即玩家的人數...

愛奇藝 校招筆試 2017 9 11

andrew zhang sep 11,2017 工作好閒。參加校招筆試玩玩兒,題目很簡單。題目2 如果乙個數字滿足以下條件,就稱它是奇異數 1 這個數字至少有兩位 2 這個數字的最低兩位是相同的 計算區間 l,r 內的所有奇異數。include using namespace std long l...

愛奇藝校招 空中旅行(python)

牛牛有羊羊有了屬於他們自己的飛機。於是他們進行幾次連續的飛行。f i 表示第i次飛行所需的燃油的公升數。飛行只能按照f陣列所描述的順序進行。起初飛機裡有s公升燃油,為了正常飛行,每次飛行前飛機內燃油量應大於等於此處飛行所需要的燃油量。請幫助他們計算在不進行加油的情況下他們能進行的飛行次數。輸入包括兩...