1 条题解

  • 0
    @ 2025-4-17 15:37:57

    题意:刚看这道英语题的时候意思大概能读懂,大概就是问你一个长方形能不能放到另一个长方形里面,注意如果箱子是一样的a=4,b=4,x=4,y=4是放不进去的,必须要大于才行

    思路:原来以为只要判断 a>x&&b>y就可以了,但是没有想到箱子可以斜着放,如果a>x&&b>y可以放,如果ab<=xy不可以放,如果b<y不可以,但是如果a<x的话就在判断斜着放的情况就行了,如果a>h就可以放进去,否则不能,求h的话要用到数学反余弦函数,还需要做辅助线判断角的度数,{注意:acos(m)=n的话,cos(n)=m},角的度数的话如图所示,应该很清楚了

    #include <iostream>
    #include<string.h>
    #include<algorithm>
    #include<stdio.h>
    #include<math.h>
    using namespace std;
    int main()
    {
        double  a,b,x,y;
        int t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%lf%lf%lf%lf",&a,&b,&x,&y);
            if(a<b){swap(a,b);}
            if(x<y){swap(x,y);}
    
            if(a>x&&b>y)
            {
                printf("Escape is possible.\n");continue;
            }
            if(b<y)
            {
                 printf("Box cannot be dropped.\n");continue;
            }
            if(a*b<=x*y)
            {
                printf("Box cannot be dropped.\n");continue;
            }
            double angle,d,h;
             d=sqrt(x*x+y*y);
             angle=acos(y/d)-acos(b/d);
             h=cos(angle)*x+sin(angle)*y;
            if(a>h)
            {
                printf("Escape is possible.\n");
            }
            else
            {
                printf("Box cannot be dropped.\n");
            }
    
        }
        return 0;
    }
    • 1

    信息

    ID
    381
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者