zoukankan      html  css  js  c++  java
  • 51nod 2488 矩形并的面积

    在二维平面上,给定两个矩形,满足矩形的每条边分别和坐标轴平行,求这个两个矩形的并的面积。即它们重叠在一起的总的面积。

     

    输入

    8个数,分别表示第一个矩形左下角坐标为(A,B),右上角坐标为(C,D);第二个矩形左下角坐标为(E,F),右上角坐标为(G,H)。
    保证A<C,B<D,E<G,F<H。
    保证所有数的绝对值不超过2*10^9,矩形并的面积≤2*10^9。

    输出

    输出一个数表示矩阵并的面积。

    输入样例

    -3 0 3 4 0 -1 9 2

    输出样例

    45

    计算重叠部分的面积的方法是对xy坐标都求交集。
    代码:
    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <cmath>
    #include <algorithm>
    
    using namespace std;
    int get(int a,int b,int c,int d) {
        if(c >= b || a >= d) return 0;
        return min(b,d) - max(a,c);
    }
    int main() {
        int a,b,c,d,e,f,g,h;
        cin >> a >> b >> c >> d >> e >> f >> g >> h;
        printf("%d",(c - a) * (d - b) + (g - e) * (h - f) - get(a,c,e,g) * get(b,d,f,h));
        return 0;
    }
  • 相关阅读:
    ZOJ 3556
    ZOJ 2836
    HDU 2841
    HDU 4135
    POJ 3695
    POJ 2773
    HDU 4407
    HDU 1796
    ZOJ 3688
    ZOJ 3687
  • 原文地址:https://www.cnblogs.com/8023spz/p/10897324.html
Copyright © 2011-2022 走看看