51Nod 1072 威佐夫遊戲(威佐夫博弈)

2021-08-21 18:50:31 字數 777 閱讀 1866

1072 威佐夫遊戲

基準時間限制:1 秒 空間限制:131072 kb 分值: 0 難度:基礎題

有2堆石子。a b兩個人輪流拿,a先拿。每次可以從一堆中取任意個或從2堆中取相同數量的石子,但不可不取。拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出2堆石子的數量,問最後誰能贏得比賽。

例如:2堆石子分別為3顆和5顆。那麼不論a怎樣拿,b都有對應的方法拿到最後1顆。

input

第1行:乙個數t,表示後面用作輸入測試的數的數量。(1 <= t <= 10000)

第2 - t + 1行:每行2個數分別是2堆石子的數量,中間用空格分隔。(1 <= n <= 2000000)

output

共t行,如果a獲勝輸出a,如果b獲勝輸出b。
input示例

3

3 53 4

1 9

output示例

b

aa

如果兩堆石子n,m,滿足:最小值=差值*(sqrt(5)+1)/2(約等於1.618,**比例),後手贏,否則,先手贏

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

typedef long long ll;

int main()

return 0;

}

51nod 1072 威佐夫遊戲(威佐夫博弈)

有2堆石子。a b兩個人輪流拿,a先拿。每次可以從一堆中取任意個或從2堆中取相同數量的石子,但不可不取。拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出2堆石子的數量,問最後誰能贏得比賽。例如 2堆石子分別為3顆和5顆。那麼不論a怎樣拿,b都有對應的方法拿到最後1顆。...

51Nod 1072 威佐夫遊戲

有2堆石子。a b兩個人輪流拿,a先拿。每次可以從一堆中取任意個或從2堆中取相同數量的石子,但不可不取。拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出2堆石子的數量,問最後誰能贏得比賽。例如 2堆石子分別為3顆和5顆。那麼不論a怎樣拿,b都有對應的方法拿到最後1顆。...

51nod 1072 威佐夫遊戲

有2堆石子。a b兩個人輪流拿,a先拿。每次可以從一堆中取任意個或從2堆中取相同數量的石子,但不可不取。拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出2堆石子的數量,問最後誰能贏得比賽。例如 2堆石子分別為3顆和5顆。那麼不論a怎樣拿,b都有對應的方法拿到最後1顆。...