题解:P14069 初遇

· · 题解

解题思路

显然 a=nb=na+b=n 无解。

如果 a\ne b,第一步操作后,得到:

A=a,B=a+b

A=a+b,B=b

后续每一步始终操作另一个数,得到:

A=a+k(a+b),B=a+b

A=a+b,B=b+k(a+b)

由于 a\ne b,即 a+k(a+b)\ne b+k(a+b),至少有一种情况不等于 n,因此一定有解。

如果 a=b,第一次操作后除非 A+B=3a=n 无解,否则一定有解。

参考代码

#include <bits/stdc++.h>
using namespace std;

using ll=long long;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T;
    cin>>T;
    while(T--)
    {
        ll a,b,n;
        cin>>a>>b>>n;
        cout<<(a==n||b==n||a+b==n||(a==b&&a*3==n)?"No":"Yes")<<'\n';
    }
    return 0;
}