luogu P2252 取石子游戏(威佐夫博弈)
题意
题解
对于像我这种不知道威佐夫博弈的人来说,拿到题就开始打表了。
然而打完后并没有发现什么。
然后才知道是威佐夫博弈。
结论是当(int)((b-a)*((sqrt(5.0)+1.0)/2.0))=a时为必败局面。
否则为必胜局面。
1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<cstdio> 5 #include<algorithm> 6 using namespace std; 7 long long a,b; 8 int main(){ 9 scanf("%lld%lld",&a,&b); 10 if(a>b)swap(a,b); 11 if((long long)((b-a)*(sqrt(5.0)+1.0)/2.0)==a)printf("0"); 12 else printf("1"); 13 return 0; 14 }