1 条题解

  • 0
    @ 2025-8-24 22:19:38

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Scrutiny
    At the end of the storm there’s a golden sky.

    搬运于2025-08-24 22:19:38,当前版本为作者最后更新于2020-04-09 09:39:38,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    原问题不难转换为:如果火柴长度\leq矩形内以及矩形上两点最远距离,则输出DA,否则输出NE

    现在我们求矩形内以及矩形上最远两点的距离:

    设矩形顶点A(0,0),B(0,y),C(x,y),D(x,0)A(0,0),B(0,y),C(x,y),D(x,0),这里x,y>0x,y>0

    矩形内或矩形上两点E(x1,y1),F(x2,y2)E(x_1,y_1),F(x_2,y_2),那么显然0x1,x2x,0y1,y2y0\leq x_1,x_2\leq x,0\leq y_1,y_2\leq y

    EF=(x1x2)2+(y1y2)2EF=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}

    x1x2x,y1y2y|x_1-x_2|\leq x,|y_1-y_2|\leq y

    EFx2+y2EF\leq \sqrt{x^2+y^2}

    因此,只要火柴长度w2+h2\leq \sqrt{w^2+h^2}即可放下。

    CODE:

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    double w,h,x;
    int main(){
    	cin>>n>>w>>h;
    	for(int i=1;i<=n;++i){
    		cin>>x;
    		cout<<(sqrt(w*w+h*h)<x?"NE":"DA")<<endl;
    	}
    	return 0;
    }
    

    要抄窝的题解请理解后再抄qwq

    • 1

    信息

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