河南省藍橋杯第八屆省賽 10 油漆面積

2021-10-05 07:41:40 字數 1498 閱讀 3943

題目描述:

x星球的一批考古機械人正在一片廢墟上考古。

該區域的地面堅硬如石、平整如鏡。

管理人員為方便,建立了標準的直角座標系。

每個機械人都各有特長、身懷絕技。它們感興趣的內容也不相同。

經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。

矩形的表示格式為(x1,y1,x2,y2),代表矩形的兩個對角點座標。

為了醒目,總部要求對所有機械人選中的矩形區域塗黃色油漆。

小明並不需要當油漆工,只是他需要計算一下,一共要耗費多少油漆。

其實這也不難,只要算出所有矩形覆蓋的區域一共有多大面積就可以了。

注意,各個矩形間可能重疊。

本題的輸入為若干矩形,要求輸出其覆蓋的總面積。

輸入格式:

第一行,乙個整數n,表示有多少個矩形(1<=n<10000)

接下來的n行,每行有4個整數x1 y1 x2 y2,空格分開,表示矩形的兩個對角頂點座標。

(0<= x1,y1,x2,y2 <=10000)

輸出格式:

一行乙個整數,表示矩形覆蓋的總面積。

例如,輸入:

31 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

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

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

分析:這題感覺很簡單,用map二位陣列記錄下地圖,初始化map=0。然後根據每次機械人塗漆的範圍,來使對應的map值=1,若已經=1則跳過,最後計算整個地圖含1的個數即可

**如下:

#includeusing namespace std;

int map[10005][10005];

int n;

void paint(int x1,int y1,int x2,int y2);

int main()

int area=0;

for(int i=0;i<=9999;i++)

for(int j=0;j<=9999;j++)

if(map[i][j]==1)

area++;

cout

}void paint(int x1,int y1,int x2,int y2)

河南省藍橋杯第八屆省賽 7 正則問題

題目描述 考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6。輸入 乙個由x 組成的正規表示式。輸入長度不超過100,保證合法。輸出 這個正規表示式能接受的最長字串的長度。例如,輸入 xx...

河南省藍橋杯第八屆省賽 9 分巧克力

題目描述 兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力需要滿足 1.形狀是正方形,邊長是整數 2.大小相同 例如一塊6x5...

藍橋杯第八屆省賽

第4題 6x6的方格,沿著格仔的邊線剪開成兩部分。要求這兩部分的形狀完全相同。如圖 p1.png,p2.png,p3.png 就是可行的分割法。試計算 包括這3種分法在內,一共有多少種不同的分割方法。注意 旋轉對稱的屬於同一種分割法。請提交該整數,不要填寫任何多餘的內容或說明文字。圖的dfs 按照兩...