油漆面積
x星球的一批考古機械人正在一片廢墟上考古。
該區域的地面堅硬如石、平整如鏡。
管理人員為方便,建立了標準的直角座標系。
每個機械人都各有特長、身懷絕技。它們感興趣的內容也不相同。
經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。
矩形的表示格式為(x1,y1,x2,y2),代表矩形的兩個對角點座標。
為了醒目,總部要求對所有機械人選中的矩形區域塗黃色油漆。
小明並不需要當油漆工,只是他需要計算一下,一共要耗費多少油漆。
其實這也不難,只要算出所有矩形覆蓋的區域一共有多大面積就可以了。
注意,各個矩形間可能重疊。
本題的輸入為若干矩形,要求輸出其覆蓋的總面積。
輸入格式:
第一行,乙個整數n,表示有多少個矩形(1<=n<10000)
接下來的n行,每行有4個整數x1 y1 x2 y2,空格分開,表示矩形的兩個對角頂點座標。
(0<= x1,y1,x2,y2 <=10000)
輸出格式:
一行乙個整數,表示矩形覆蓋的總面積。
例如,
輸入:3
1 5 10 10
3 1 20 20
2 7 15 17
程式應該輸出:
340
再例如,15+24+120 159
輸入:3
5 2 10 6
2 7 12 10
8 1 15 15
程式應該輸出:
128
思路比較簡單,直接暴力遍歷所有矩形,被矩形包圍的點則vis陣列置1,然後遍歷vis全部陣列,
上**
/*name:藍橋杯-油漆面積
author: 楓葉
date: 13.12.17 18:26
description:
*/#include#include #define n 10001
using namespace std;
int a[n][4];//儲存矩形頂點
int vis[n][n];//儲存矩形圍起來的點
void swap(int &a,int &b)//交換函式
void place(int k)//矩形圍起來的點之一
for(int i=a[k][0];i>n;
memset(a,0,sizeof(int)*n*n);//陣列全部元素置0
memset(vis,0,sizeof(int)*n*n);//陣列全部元素置0
for(int i=0;i>a[i][0]>>a[i][1]>>a[i][2]>>a[i][3];//輸入矩形頂點
place(i);//計算 }
for(int i=0;i<=10000;i++) }
cout<
藍橋杯 油漆面積
問題描述 x星球的一批考古機械人正在一片廢墟上考古。該區域的地面堅硬如石 平整如鏡。管理人員為方便,建立了標準的直角座標系。每個機械人都各有特長 身懷絕技。它們感興趣的內容也不相同。經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。矩形的表示格式為 x1,y1,x2,y2 代表...
油漆面積 藍橋杯 C A組
x星球的一批考古機械人正在一片廢墟上考古。該區域的地面堅硬如石 平整如鏡。管理人員為方便,建立了標準的直角座標系。每個機械人都各有特長 身懷絕技。它們感興趣的內容也不相同。經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。矩形的表示格式為 x1,y1,x2,y2 代表矩形的兩個...
藍橋杯練習系統 油漆面積(測試資料存在問題)
問題描述 x星球的一批考古機械人正在一片廢墟上考古。該區域的地面堅硬如石 平整如鏡。管理人員為方便,建立了標準的直角座標系。每個機械人都各有特長 身懷絕技。它們感興趣的內容也不相同。經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。矩形的表示格式為 x1,y1,x2,y2 代表...