1. 程式人生 > >51Nod1072 威佐夫遊戲(博弈論的黃金分割理論)

51Nod1072 威佐夫遊戲(博弈論的黃金分割理論)

這道題主要考博弈論的Wythoff Game的黃金分割理論:有一個推論,k=b-a,如果a=k*黃金分割數,則當前局勢為奇異局,既先手必輸。

ps:黃金分割數:(根號5+1)/2

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		int a,b;
		cin>>a>>b;
		if(a>b)
		{
			int t;
			t=a;
			a=b;
			b=t;
		}
		int k=b-a;
		int ans=(int)(k*(1+sqrt(5))/2.0);
		//(1+sqrt(5))/2.0黃金分割數 
		if(a==ans)
			cout<<"B"<<endl;
		else 
			cout<<"A"<<endl;
	}
	return 0;
}