資源簡介
時間限制:1000MS 內(nèi)存限制:65535K
提交次數(shù):119 通過次數(shù):27
題型: 編程題 語言: 無限制
Description
在 X-Y 坐標(biāo)平面上,給定多個矩形,它們的邊分別與坐標(biāo)軸平行。請計算它們的并的面積。
輸入格式
輸入第一行為一個整數(shù) n,1<=n<=100,表示矩形的數(shù)量。
接下來有 n 行,每行包括四個數(shù):x1,y1,x2,y2 (0<=x1<x2<=100000;0<=y1<y2<=100000),用空格分開,不一定為整數(shù)。
(x1,y1)表示一個長方形的左下頂點坐標(biāo),(x2,y2)表示右上頂點坐標(biāo)。
輸出格式
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
- 上一篇:基于LEX的C語言詞法分析器
- 下一篇:四則運算C++實現(xiàn)
評論
共有 條評論