藍橋杯 油漆面積

2021-08-13 11:36:36 字數 1525 閱讀 1327

油漆面積

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 代表...