51nod 1185 威佐夫游戏 V2(威佐夫博弈)

来源:互联网 发布:加工中心铣槽编程 编辑:程序博客网 时间:2024/05/22 12:49
#include <iostream>#include <cmath>#include <cstdio>/*博弈论之黄金分割定律,属于奇异局。数据比较大,高精度,乘法模拟。*/using namespace std;typedef unsigned long long ULL;const ULL Gold[3] = {618033988, 749894848, 204586834};const ULL mod = 1e9;int main(){    int t;    scanf("%d",&t);    ULL a, b;    while (t--)    {        scanf("%llu %llu",&a,&b);        if (a < b)        {            swap(a, b);        }        ULL dist = a - b;        ULL pre = dist / mod, las = dist % mod;        ULL a1 = las * Gold[2];        ULL a2 = pre * Gold[2] + las * Gold[1] + a1 / mod;        ULL a3 = pre * Gold[1] + las * Gold[0] + a2 / mod;        ULL a4 = dist + pre * Gold[0] + a3 / mod;        printf("%c\n",a4 == b ? 'B' : 'A');    }}
原创粉丝点击