新疆大学五月月赛G题 chess 【威佐夫博弈】

传送门
题意: 就是给定一个坐标, 每次只能选左边, 左下, 正下其中一个方向走任意多步. 第一个走到(0, 0)点的算赢, 问先手是否必赢.

思路: 没学过威佐夫博弈的肯定不会, 但是知道的都知道这就是威佐夫博弈的**题, 直接套套公式就行了… 具体公式的证明请看百度百科.

AC Code

void solve()
{
    int a, b;
    while(~scanf("%d%d", &a, &b)) {
        if (a < b) swap(a, b);
        printf("%s\n", (int)(1.0*(a-b)*((sqrt(5.0) + 1)/2.0)) == b ? "Lao Wang" : "Xiao Ren");
    }
}

猜你喜欢

转载自blog.csdn.net/anxdada/article/details/80197612