歐幾里德的兩個後代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贏得了遊戲的勝利。
現在,假設他們完美地操作,誰會取得勝利呢?
輸入格式:
第一行為測試資料的組數c。下面有c行,每行為一組資料,包含兩個正整數m, n。(m, n不超過長整型。)
輸出格式:
對每組輸入資料輸出一行,如果stan勝利,則輸出「stan wins」;否則輸出「ollie wins」
輸入樣例#1:
225 7
24 15
輸出樣例#1:
stan winsollie wins
見數學一本通p13(太長了我懶得打)
#include#include#define f(i,l,r) for(i=(l);i<=(r);i++)
using namespace std;
int main()
{ ios::sync_with_stdio(false);
int i,j,t,a,b,flag;
cin>>t;
while(t--){
cin>>a>>b;
flag=1;
if(a
洛谷P1290 歐幾里德的遊戲
歐幾里德的兩個後代stan和ollie正在玩一種數字遊戲,這個遊戲是他們的祖先歐幾里德發明的。給定兩個正整數m和n,從stan開始,從其中較大的乙個數,減去較小的數的正整數倍,當然,得到的數不能小於0。然後是ollie,對剛才得到的數,和m,n中較小的那個數,再進行同樣的操作 直到乙個人得到了0,他...
洛谷P1290 歐幾里德的遊戲
題目 只要出現n 2 m,就可以每次把較大的數控制在較小的數的一倍與二倍之間,則控制了對方的走法 每次取後兩個數大小交換,這時可能出現整除,而上述方法可以保證每次可能出現整除時都輪到自己,所以必勝。如下 include include using namespace std typedef long...
P1290 歐幾里德的遊戲
原題鏈結 模擬賽的一道題,我大眼一看是博弈論的題,想都沒想直接跳過 我完全不會博弈論 看了題解之後發現其實並不難 直接看結論 記當前狀態為 d x,y 且 x y 若此時 x 2y 則目前的操作者勝利 下面是證明 假定 x ky r 其中 r x y k x y 根據假設,k 2 此時討論 d y,...