題目描述
給定兩個矩陣:演算法分析前提:兩個矩陣的邊均與x軸和y軸平行,即軸對齊的矩形
將第乙個矩形記作a,第二個矩形記作b,判斷矩形a與矩形b是否重疊(邊沿重疊也認為是重疊),如果重疊則返回重疊面積。。
反向思考,我們不妨先解決出「不重疊」的情況,即b矩陣,可能在a的左側、右側、上側、下側。提交**:
#include#include#includeusing namespace std;
struct rectangle
};int main()
double width = min(p2_x, p4_x) - max(p1_x, p3_x);
double height = min(p2_y, p4_y) - max(p1_y, p3_y);
cout << width * height << endl;
return 0;
}
若對於每個矩形,我們給出它的一對相對頂點的座標,此時兩個矩形的交的面積:
#include#includeusing namespace std;
double max(double x1, double x2);
double min(double x1, double x2);
int main()
double max(double x1, double x2)
double min(double x1, double x2)
判斷兩個矩形是否重疊
兩個矩形的邊均與x軸或y軸平行,即軸對齊的矩形 將第乙個矩形記做a,第二個矩形記做b 判斷矩陣a與矩陣b是否重疊 邊沿重疊也認為是重疊 第一種方案,正向思維 按照一般的思路,先列舉出所有的矩形重疊的情況,然後,判斷是否是其中一種,如圖所示,共有四種重疊情況,我們使用紫色代表矩形a,紅色代表矩形b,並...
C 判斷兩個矩形是否重疊
矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1,1,3...
演算法 判斷兩個區間是否重疊
判斷兩個區間是否重疊 假設區間表示為 start,end 先存在兩個區間a,b.兩個區間的關係有兩種 重疊與不重疊 重疊的情況有4種,兩種相交,兩種包含 很容易想到,此處不示意 不重疊有兩種情況 a在b前面,a在b後面 因此很容易得到判斷區間重疊的方法 1 正向判斷,列出四種重疊的情況,滿足其一,則...