東華oj 挑戰題第8題 矩形面積交

2021-10-04 03:26:29 字數 2020 閱讀 4267

8 矩形面積交

問題描述 :

平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。

輸入說明 :

輸入僅包含兩行,每行描述乙個矩形。

在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10^7的實數表示。

輸出說明 :

輸出僅包含乙個實數,為交的面積,保留到小數後兩位。

輸入範例 :

1 1 3 3

2 2 4 4

輸出範例 :

1.00

**:

/*

t8 矩形面積交

演算法概述:判斷第二個矩形有沒有點a在第乙個矩形範圍內(某個點a的橫座標大於

第乙個矩形橫座標較小的點小於橫座標較大的點,並且a的縱座標同樣滿足要求,那麼

點a在第乙個矩形範圍內),若有,則求出相交範圍的長和寬即可(長:第乙個矩形橫

座標的較大者減去a點的橫座標;寬:按照求長同樣的方法求得)

*/#include

#include

void

swap

(double

*a,double

*b);

intmain()

if((x21 >= x11 && x21 <= x12)

&&(y21 >= y11 && y21 <= y12))if

((x22 >= x11 && x22 <= x12)

&&(y22 >= y11 && y22 <= y12))if

((x22 >= x11 && x22 <= x12)

&&(y21 >= y11 && y21 <= y12))if

((x21 >= x11 && x21 <= x12)

&&(y22 >= y11 && y22 <= y12))if

(!flag)

printf

("0.00");

return0;

}// 交換兩個數

void

swap

(double

*a,double

*b)

看了下大佬的**,我寫的太囉嗦了……

改進版:

/*

t8 矩形面積交

演算法概述:判斷第二個矩形有沒有點a在第乙個矩形範圍內(某個點a的橫座標大於

第乙個矩形橫座標較小的點小於橫座標較大的點,並且a的縱座標同樣滿足要求,那麼

點a在第乙個矩形範圍內),若有,則求出相交範圍的長和寬即可(長:第乙個矩形橫

座標的較大者減去a點的橫座標;寬:按照求長同樣的方法求得)

*/#include

#include

void

swap

(double

*a,double

*b);

double

max(

double a,

double b)

;double

min(

double a,

double b)

;int

main()

printf

("%.2f"

, area)

;return0;

}// 交換兩個數

void

swap

(double

*a,double

*b)double

max(

double a,

double b)

double

min(

double a,

double b)

從這個題我學到了:

多種情況之間可以相互轉化的時候,一般可以整合成一種情況

東華OJ挑戰 8 矩形面積交

問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入說明 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出說明 輸出僅...

東華oj 挑戰題第1題 Huffuman樹

1 huffuman樹 問題描述 huffman樹在編碼中有著廣泛的應用。在這裡,我們只關心huffman樹的構造過程。給出一列數 用這列數構造huffman樹的過程如下 1.找到中最小的兩個數,設為pa和pb,將pa和pb從中刪除掉,然後將它們的和加入到中。這個過程的費用記為pa pb。2.重複步...

東華oj 挑戰題第74題 地宮取寶

74 地宮取寶 問題描述 x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,...