《博弈論》歐幾里德的遊戲

2021-10-25 08:56:53 字數 1026 閱讀 3194

時間限制 1000 ms

記憶體限制 128 mb

題目描述

歐幾里德的兩個後代stan和ollie正在玩一種數字遊戲,這個遊戲是他們的祖先歐幾里德發明的。給定兩個正整數m和n,從stan開始,從其中較大的乙個數,減去較小的數的正整數倍,當然,得到的數不能小於0。然後是ollie,對剛才得到的數,和m,n中較小的那個數,再進行同樣的操作……直到乙個人得到了0,他就取得了勝利。下面是他們用(25,7)兩個數遊戲的過程:

start:25 7

stan:11 7

ollie:4 7

stan:4 3

ollie:1 3

stan:1 0

stan贏得了遊戲的勝利。

現在,假設他們完美地操作,誰會取得勝利呢?

輸入資料

第一行為測試資料的組數 cc 。下面有 cc 行,每行為一組資料,包含兩個正整數 m,nm,n 。 (m,n(m,n 不超過長整型。)

輸出資料

對每組輸入資料輸出一行,如果stan勝利,則輸出「stan wins」;否則輸出「ollie wins」

樣例輸入

2

25 7

24 15

樣例輸出

stan wins

ollie wins

解析:因為每次都是最優化操作,顯然當乙個人可以有兩種選擇時,顯然,如果奇數倍不贏,偶數倍必贏 即當maxnum/minnum>=2時,那個人必贏,

當乙個人只有一次選擇時,即m/n=1時,他只能操作,但並不能確定輸贏,這時候可以判斷什麼時候maxnum%minnum=0 eg,7/1 那麼他的對手必輸。即他必贏 

#include#include#include#include#include#include#includeusing namespace std;

void output(bool flag)

int main()

return 0;

}

洛谷1290 歐幾里德的遊戲(博弈論)

點此看題面 大致題意 給定兩個正整數,從sta nstan stan 開始,每次將兩個數中較大的數減去較小數的正整數倍 得到數不能小於0 然後是oll ie ollie olli e進行同樣操作。若誰先得到0誰就勝利,請你求出誰會取得勝利。分類討論 這一看就是博弈論題。我們可以用w x y w x,...

洛谷1290 歐幾里德的遊戲(博弈論)

點此看題面 大致題意 給定兩個正整數,從 stan 開始,每次將兩個數中較大的數減去較小數的正整數倍 得到數不能小於0 然後是 ollie 進行同樣操作。若誰先得到0誰就勝利,請你求出誰會取得勝利。這一看就是博弈論題。我們可以用 w x,y 來表示兩個數分別為 x 和 y 時的獲勝情況 設 x y ...

luoguP1290 歐幾里德的遊戲 博弈論

歐幾里德的兩個後代stan和ollie正在玩一種數字遊戲,這個遊戲是他們的祖先歐幾里德發明的。給定兩個正整數m和n,從stan開始,從其中較大的乙個數,減去較小的數的正整數倍,當然,得到的數不能小於0。然後是ollie,對剛才得到的數,和m,n中較小的那個數,再進行同樣的操作 直到乙個人得到了0,他...