zoukankan      html  css  js  c++  java
  • HDU 2056 Rectangles

    题目描述:给你两个矩形的对角线上的两个点的坐标,求出这两个矩形的公共部分的面积。

    解题报告:觉得这题TMD好坑,example里面两个都是给出左下角和右上角的点的坐标,但是测试数据里面给出的数据是随机的,就是说两条对角线是任意给出的。一开始没有考虑到,弄得到现在才过,这题其实很水,主要就是要求两个区间的交集,写出求交集的函数就好办了,代码附上。

     1 #include<cstdio>
     2 #include<iostream>
     3 
     4 double judge(double x1,double x2,double x3,double x4) {//求交集函数 
     5     if(x3<=x4&&x4<=x1&&x1<=x2)     //枚举两个区间六中可能的情况,实在 
     6     return 0;
     7     else if(x3<=x1&&x1<=x4&&x4<=x2)
     8     return 1.0*(x4-x1);
     9     else if(x1<=x3&&x3<=x4&&x4<=x2)
    10     return 1.0*(x4-x3);
    11     else if(x3<=x1&&x1<=x2&&x2<=x4)
    12     return 1.0*(x2-x1);
    13     else if(x1<=x3&&x3<=x2&&x2<=x4)
    14     return 1.0*(x2-x3);
    15     else if(x1<=x2&&x2<=x3&&x3<=x4)
    16     return 0;
    17 }
    18 int main() {
    19     double x1,y1,x2,y2,x3,y3,x4,y4;
    20     while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4)!=EOF) {
    21         if(x1>x2)     //这步很重要,就是少了这步,让我无限WA 
    22         std::swap(x1,x2);
    23         if(y1>y2)      //就是考虑对角线不是坐下家跟右上角的情况 
    24         std::swap(y1,y2);
    25         if(x3>x4)
    26         std::swap(x3,x4);
    27         if(y3>y4)
    28         std::swap(y3,y4);
    29         double x = judge(x1,x2,x3,x4);
    30         double y = judge(y1,y2,y3,y4);
    31         printf("%.2lf
    ",x*y);
    32     }
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    angular学习地址
    ab压力测试-突破最大线程数
    apache-ab并发负载压力测试 不错
    yum: Cannot find a valid baseurl for repo: migsrv解决方法
    Error: rpmdb open failed
    Web性能压力测试之Webbench使用详解
    几款Web服务器性能压力测试工具
    利用http_load测试Web引擎性能
    gunicorn部署Flask服务
    Python Web 框架:Tornado
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3216508.html
Copyright © 2011-2022 走看看