zoukankan      html  css  js  c++  java
  • 矩形面积求并

    【题目描述】

    输入n个矩形,求它们总共占地面积(也就是求一下面积的并)。

    【输入描述】

    可能有多组数据,读到n=0为止(不超过15组)。

    每组数据第一行包含1个数n,表示矩形个数(n <= 100);

    接下来n行每行4个实数x1、y1、x2、y1(0 <= x1 < x2 <= 100000,0 <= y1 < y2 <= 100000),表示矩形的左下角坐标和右上角坐标。

    【输出描述】

    对于每组数据输出一行表示答案。

    【样例输入】

    2

    10 10 20 20

    15 15 25 25.5

    0

    【样例输出】

    180.00

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,k,f[201][201];
    double ans,X[201],Y[201],i[201][5];
    int main()
    {
        while (cin>>n)
        {
            if (!n)
              break;
            k=1;
            ans=0.0;
            memset(f,0,sizeof(f));
            for (int a=1;a<=n;a++)
            {
                cin>>i[a][1]>>i[a][2]>>i[a][3]>>i[a][4];
                X[k]=i[a][1];
                Y[k]=i[a][2];
                k++;
                X[k]=i[a][3];
                Y[k]=i[a][4];
                k++;
            }
            sort(X+1,X+n*2+1);
            sort(Y+1,Y+n*2+1);
            for (int k=1;k<=n;k++)
            {
                int A1,A2,B1,B2;
                for (A1=1;A1<=2*n;A1++)
                  if (X[A1]==i[k][1])
                    break;
                for (A2=1;A2<=2*n;A2++)
                  if (X[A2]==i[k][3])
                    break;
                for (B1=1;B1<=2*n;B1++)
                  if (Y[B1]==i[k][2])
                    break;
                for (B2=1;B2<=2*n;B2++)
                  if (Y[B2]==i[k][4])
                    break;
                for (int a=A1;a<A2;a++)
                  for (int b=B1;b<B2;b++)
                    f[a][b]=1;
            }
            for (int a=1;a<=n*2;a++)
              for (int b=1;b<=n*2;b++)
                ans+=f[a][b]*(X[a+1]-X[a])*(Y[b+1]-Y[b]);
            printf("%.2f
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    mysql常见的优化方法
    Mac 怎么通过自带终端连接linux服务器
    基于 appium 的 UI 自动化测试
    sourcetree在mac上的使用
    mac下git安装和使用
    mac 上更改环境变量
    Mac环境下svn的使用
    jira常用配置
    influxDB基本操作
    Collectd 和 InfluxDB 的部署和使用
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5837592.html
Copyright © 2011-2022 走看看