Euclid's Game
阿新 • • 發佈:2019-03-16
情況 ret uva namespace cin bit swap c++ efi
博弈論
如果a/b>=2則先手必勝,否則就對(b,a-b)的情況取反 a可以整除b的時候也是必贏的
要保證a>b
#include<bits/stdc++.h> #define ll long long using namespace std; ll a,b; int main() { while(cin>>a>>b) { if(a==0 && b==0) break; int times = 1; if(a<b) swap(a,b); while(a%b && a/b==1) { a-=b; if(a<b) swap(a,b); times^=1; } if(!times) cout << "Ollie wins" << endl; else cout << "Stan wins" << endl; } return 0; }
uva 10368
Euclid's Game