题解:CF2196A Game with a Fraction

· · 题解

题目解析

下文中为表述清楚,我们用 a 代替 p,用 b 代替 q。 注意到当且仅当存在一个数字 k 满足 \frac{a-k}{b-k}=\frac{2}{3} 时,Bob 才能胜利。

解释一下,抽象化上面的算式,这代表每一次 Alice 无论操作哪一个数字,Bob 都可以操作另一个数字,让其每当两人都完成 1 次操作,每次减的数值相同时,\frac{a}{b} 能达到 \frac{2}{3},只有这种情况 Bob 才能掌控局势,否则 Alice 可以让某一个数字变得极小以掌控局势。

那么我们解这个方程:
交叉相乘,得 3(a-k)=2(b-k)
去括号,得 3a-3k=2b-2k
移项,得 3a-2b=3k-2k。 合并同类项,得 k=3a-2b

那么什么样的 k 不合法呢?

做完了。

正解代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int a,b;
        cin>>a>>b;
        int k=a*3-b*2;
        if(k>=0 && a-k>0 && b-k>0)
        {
            cout<<"Bob\n";
        }
        else
        {
            cout<<"Alice\n";
        }
    }
    return 0;
}