1 条题解

  • 0
    @ 2026-5-9 10:10:35

    题解文字教学

    给定猎人和兔八哥的整数坐标,两点之间的线段上是否存在其他整数坐标点(果树),等价于判断横坐标差 dx=axbxdx = |a_x-b_x| 与纵坐标差 dy=aybydy = |a_y-b_y| 的最大公约数是否为 1。
    gcd(dx,dy)=1\gcd(dx, dy) = 1,则线段上无其他整点,兔子安全,输出 yes;否则输出 no
    每组数据独立判断,数据范围 10810^8 以内,直接使用辗转相除法即可。


    参考代码

    #include <bits/stdc++.h>
    using namespace std;
    
    int gcd(int a, int b) {
        while (b) {
            int t = a % b;
            a = b;
            b = t;
        }
        return a;
    }
    
    int main() {
        int n;
        cin >> n;
        while (n--) {
            int ax, ay, bx, by;
            cin >> ax >> ay >> bx >> by;
            int dx = abs(ax - bx);
            int dy = abs(ay - by);
            if (gcd(dx, dy) == 1)
                cout << "no" << endl;
            else
                cout << "yes" << endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    170
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    4
    已通过
    3
    上传者