• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-08
  • 标签: 离散  c++  

资源简介

时间限制:1000MS 内存限制:65535K 提交次数:119 通过次数:27 题型: 编程题 语言: 无限制 Description 在 X-Y 坐标平面上,给定多个矩形,它们的边分别与坐标轴平行。请计算它们的并的面积。 输入格式 输入第一行为一个整数 n,1<=n<=100,表示矩形的数量。 接下来有 n 行,每行包括四个数:x1,y1,x2,y2 (0<=x1<x2<=100000;0<=y1<y2<=100000),用空格分开,不一定为整数。 (x1,y1)表示一个长方形的左下顶点坐标,(x2,y2)表示右上顶点坐标。 输出格式 n个矩形的并的面积,

资源截图

代码片段和文件信息

#include
#include
#include

int SegmentMerge(double r[]int lowint highint len);
void MergeSort(double r[]int n);
int main()
{
int N;
double x[205]y[205];
double rectangle[100][4];
int ijk;
int flag[205][205];
double sum=0;
std::cin>>N;
memset(flag0sizeof(flag));
for(i=0;i>x[2*i]>>y[2*i]>>x[2*i+1]>>y[2*i+1];rectangle[i][0]=x[2*i];rectangle[i][1]=y[2*i];rectangle[i][2]=x[2*i+1];rectangle[i][3]=y[2*i+1];}
//输入
MergeSort(x2*N);
MergeSort(y2*N);
//排序
for(i=0;i {
for(j=0;j<2*N;j++)
{
if(x[j]>=rectangle[i][2])break;
for(k=0;k<2*N;k++)
{
if(y[k]>=rectangle[i][3])break;
if(x[j]>=rectangle[i][0]&&y[k]>=rectangle[i][1])flag[j][k]=1;
}
}
}
for(i=0;i<2

评论

共有 条评论