zoukankan      html  css  js  c++  java
  • 两个矩形不相交

    题目连接:http://www.noobdream.com/DreamJudge/Issue/page/1211/#

    本人想法:题目给定矩形任意对角线的两个点(并没有仔细规定是正对角线还是反对角线的两个端点)。

    不管给定的是哪两个点,都能得出正对角线的左下角和右上角的坐标(当然选择这个只是作为一个参考,可以选择其他),

    然后就可以根据坐标来判断两个矩形是相交、相离、还是包含(这是包含这点把我搞的好辛苦)。

    #include <iostream>
    using namespace std;
    
    int x1,y1,x2,y2,x3,y3,x4,y4;
    
    int main() {
        
        while(~scanf("%d%d%d%d%d%d%d%d", &x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4)) {
            // 输入任意对角线坐标后, 便可以拿到我们想要的数据(就是正对角线的左下角和右上角的坐标) 
            if (x1 > x2) swap(x1, x2);
            if (y1 > y2) swap(y1, y2);
            if (x3 > x4) swap(x3, x4);
            if (y3 > y4) swap(y3, y4);
            // 排除矩形相离和包含 
            if (y2 < y3 || x2 < x3 || y1 > y4 || x1 > x4 || (x1 < x3 && y1 < y3 && x2 > x4 && y2 > y4))
                cout << "NO" << endl;
            else {
                cout << "YES" << endl;
            }
             
        }
        
        return 0;
    }

    欢迎评论。

  • 相关阅读:
    ubuntu qtcreator 硬件权限问题
    关于LuCi
    npm 使用记录
    ubuntu 下简单录音
    qthread 使用 signal 方法通信
    线程安全笔记一则
    ubuntu 设置 NAT 转发
    debian 中新建或调整 swap 空间
    关于 htonl 和 ntohl 的实现
    shell 调试手段总结
  • 原文地址:https://www.cnblogs.com/hello-dummy/p/11716458.html
Copyright © 2011-2022 走看看