• hdu 2056 Rectangles


    题目

    这道题大一上学期的时候也做过,但是那个时候没有做出来,今天又看了一遍。 

    这主要是个数学问题。


    刚开始想到分为这么几种情况,觉得好复杂啊,转念一想

    只要(x4<x1)或者(y4<y1)或者(x3>x2)或者(y3>y2),就一定不能重合

    最后得到的代码如下:

    #include <stdio.h>
    
    double min(double x1,double x2)
    {
        if(x1<x2)
            return x1;
        else
            return x2;
    }
    double max(float x1,double x2)
    {
        if(x1>x2)
            return x1;
        else
            return x2;
    }
    void change(double *a ,double *b)
    {
    	double temp;
    	temp = *a;
    	*a = *b;
    	*b = temp;
    }
    int main()
    {
        double x1,x2,x3,x4,y1,y2,y3,y4,s;
        while(~scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4))
        {
    		if(x1>x2) change(&x1,&x2);
    		if(x3>x4) change(&x3,&x4);
    		if(y1>y2) change(&y1,&y2);
    		if(y3>y4) change(&y3,&y4);
            if((x4>x1)&&(y4>y1)&&(x3<x2)&&(y3<y2))
            {
                s=(min(x2,x4)-max(x1,x3))*(min(y2,y4)-max(y1,y3));
                printf("%.2lf
    ",s);
            }
            else
                printf("0.00
    ");
            
            
        }
        return 0;
    }

    但是,最开始忘了考虑这个了,所以交了好几次都WA,因为只考虑到,矩形在第一象限,倘若在第二象限是负数就错了。。。
  • 相关阅读:
    owncloud7.0.2.1升级8.0.3
    iptables删除规则
    ESXi Install OpenWRT
    Eclipse连接VirtualBox中的Android x86
    win7、linux安装使用pip、mitmproxy
    linux php bom
    ios项目上传svn丢失*.a文件
    升级owncloud到7.0.2
    phpinfo有mysqlnd没有mysql
    Cacti监控Centos抓包unreachable
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160280.html
Copyright © 2020-2023  润新知