1 条题解

  • 0
    @ 2025-8-24 22:54:15

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar deepthinker
    我思故我在——笛卡尔

    搬运于2025-08-24 22:54:15,当前版本为作者最后更新于2024-01-14 19:53:15,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    一道非常简单的题目

    题面传送门

    这道题求需要多少次操作两条线段才能相交,其实因为一次操作可以平移任意长的距离,操作次数最多为 22 次(一次上下平移,一次左右平移)。

    • 对于是否要上下平移,我们只需要判断两条线段的横坐标区间是否有公共部分。
    • 同理,对于是否要左右平移,我们只需要判断两条线段的纵坐标区间是否有公共部分。

    话不多说,直接上代码:

    #include <bits/stdc++.h>
    using namespace std;
    long long ax, ay, bx, by, cx, cy, dx, dy, t;
    signed main()
    {
        cin >> t;
        while (t--)
        {
            int ans = 0;
            cin >> ax >> ay >> bx >> by >> cx >> cy >> dx >> dy;//输入
            if (max(ax, bx) < min(cx, dx) || min(ax, bx) > max(cx, dx))//判断横坐标是否需要操作
            {
                ans++;
            }
            if (max(ay, by) < min(cy, dy) || min(ay, by) > max(cy, dy))//判断纵坐标是否需要操作
            {
                ans++;
            }
            cout << ans << '\n';
        }
    
        return 0;
    }//结束
    
    

    总结

    这道题目十分简单,主要考查的是分析和代码实现能力。

    蒟蒻的第一篇题解,希望管理员通过。

    • 1

    信息

    ID
    9082
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者