zoukankan      html  css  js  c++  java
  • Mysterious Antiques in Sackler Museum(判断长方形)

    题目链接

    题意:大概意思就是判断四个矩形能不能从中选取三个矩形组成一个大的矩形。
    题解:

    • 从四个矩形中任选三个,这样有四种选法。
    • 三个矩形能凑成一个矩形首先是两个矩形有一条边相等,第三个矩形要么有边跟他们相等的边相等,要么有边跟他们不相等的边的和相等(有点绕)。

    想明白这两点之后直接暴力就可以了,当时训练赛的时候因为读错题然后一直WA烦躁一直没法静下心来想,修养不够,修养不够。

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cstdlib>
    #include <queue>
    
    using namespace std;
    
    struct node
    {
        int a,b;
    }s[5],tmp;
    
    node judge(node a,node b)/*这里返回结构体,这样可以减少好多代码,相当于两个矩形构成了一个新的矩形*/
    {
        if(a.a==b.a)
            return (node){a.a,a.b+b.b};
        if(a.b==b.a)
            return (node){a.b,a.a+b.b};
        if(a.a==b.b)
            return (node){a.a,a.b+b.a};
        if(a.b==b.b)
            return (node){a.b,a.a+b.a};
        return (node){0,0};
    }
    
    int pd(node a,node b,node c)
    {
        tmp = judge(a,b);
        tmp = judge(tmp,c);
        if(tmp.a>0)
            return 1;
        tmp = judge(a,c);
        tmp = judge(tmp,b);
        if(tmp.a>0)
            return 1;
        tmp = judge(b,c);
        tmp = judge(tmp,a);
        if(tmp.a>0)
            return 1;
        return 0;
    }
    
    int main()
    {
        int t,i;
        scanf("%d",&t);
        while(t--)
        {
            for(i=0;i<4;i++)
                scanf("%d%d",&s[i].a,&s[i].b);
            if(pd(s[0],s[1],s[2]))
            {
                printf("Yes
    ");
                continue;
            }
            if(pd(s[0],s[1],s[3]))
            {
                printf("Yes
    ");
                continue;
            }
            if(pd(s[0],s[2],s[3]))
            {
                printf("Yes
    ");
                continue;
            }
            if(pd(s[1],s[2],s[3]))
            {
                printf("Yes
    ");
                continue;
            }
            printf("No
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    选择排序法
    计算大阶乘(值很大)
    递归计算阶乘
    计算m的m次方倒数的和
    使用文件(FILE)输入输出
    判断回文数
    最小公倍数(调用函数与全局变量)
    How to 共用体
    How to 枚举
    有效编写软件的75条建议(转)
  • 原文地址:https://www.cnblogs.com/luoxiaoyi/p/9935777.html
Copyright © 2011-2022 走看看