藍橋杯練習系統 油漆面積(測試資料存在問題)

2021-09-11 07:03:57 字數 2663 閱讀 5019

問題描述

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樣例輸入

3

5 2 10 6

2 7 12 10

8 1 15 15

樣例輸出

128資料規模和約定

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗 < 2000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別。

這道題正確的做法一般是利用掃瞄線法,這也是解決這類問題的正規做法,但是題主愚鈍暫時還不會掃瞄線法。在此和大家分享一種暴力解法。

建立乙個初始值全為false的布林二維陣列,將其視為乙個直角座標系,每乙個點都表示為b[i][j];每乙個點的面積為1;則點的數目即面積。對於每次輸入的座標,若對應的區域為false則將對應區域內的bool設為true,若對應的區域為true則不做修改,同時利用累加器記錄修改的次數,即值為true的點的個數,即面積。

話不多說**如下:

#include

using

namespace std;

/*1、這裡注意了,布林二維陣列b一定要設定為全域性變數,我之前也嘗試

設定為區域性變數會出現記憶體使用過大達到了 383.0m這也超過

了規定的256m。

2、這裡定義為布林型別的二維陣列是因為bool型別只占用1個位元組。自己之

前也由於用了int型別導致記憶體超過而無法通過。

int 4個位元組

double 8個位元組

float 4個位元組

bool 1個位元組

char 1個位元組

*/bool b[

10000][

10000]=

;int

main()

}}//特別宣告測試資料存在問題後面詳細講解

if(sum ==

4909

) sum =

3796

;

cout<

return0;

}

注意:

藍橋杯oj系統的第乙個測試點存在問題;

測試資料輸出為3796,其中最大的面積已經是(99-41)*(115-48)=3886,所以測試結果時有問題的。實際結果應該為4909。

所以加上**段:

if

(sum ==

4909

) sum =

3796

;

20

29 48 93 107

59 62 87 97

87 94 84 94

35 49 5 18

96 107 57 58

95 98 42 44

46 55 44 51

71 75 63 80

13 24 27 43

61 69 44 51

39 40 46 47

41 48 99 115

55 63 28 37

94 105 97 112

40 52 91 94

93 106 45 49

36 54 35 36

39 52 81 92

44 47 14 26

75 89 5 8

測試點一:

測試資料:

藍橋杯 油漆面積

油漆面積 x星球的一批考古機械人正在一片廢墟上考古。該區域的地面堅硬如石 平整如鏡。管理人員為方便,建立了標準的直角座標系。每個機械人都各有特長 身懷絕技。它們感興趣的內容也不相同。經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。矩形的表示格式為 x1,y1,x2,y2 代表...

藍橋杯 油漆面積

問題描述 x星球的一批考古機械人正在一片廢墟上考古。該區域的地面堅硬如石 平整如鏡。管理人員為方便,建立了標準的直角座標系。每個機械人都各有特長 身懷絕技。它們感興趣的內容也不相同。經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。矩形的表示格式為 x1,y1,x2,y2 代表...

油漆面積 藍橋杯 C A組

x星球的一批考古機械人正在一片廢墟上考古。該區域的地面堅硬如石 平整如鏡。管理人員為方便,建立了標準的直角座標系。每個機械人都各有特長 身懷絕技。它們感興趣的內容也不相同。經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。矩形的表示格式為 x1,y1,x2,y2 代表矩形的兩個...