日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

矩形并的面积(51Nod-2488)

發布時間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩形并的面积(51Nod-2488) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

在二維平面上,給定兩個矩形,滿足矩形的每條邊分別和坐標軸平行,求這個兩個矩形的并的面積。即它們重疊在一起的總的面積。

輸入

8個數,分別表示第一個矩形左下角坐標為(A,B),右上角坐標為(C,D);第二個矩形左下角坐標為(E,F),右上角坐標為(G,H)。
保證A<C,B<D,E<G,F<H。
保證所有數的絕對值不超過2*10^9,矩形并的面積≤2*10^9。

輸出

輸出一個數表示矩陣并的面積。

輸入樣例

-3 0 3 4 0 -1 9 2

輸出樣例

45

思路:簡單容斥原理,注意判斷一下相交面積是否合法即可

源程序

#include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<utility> #include<stack> #include<queue> #include<vector> #include<set> #include<map> #define EPS 1e-9 #define PI acos(-1.0) #define INF 0x3f3f3f3f #define LL long long const int MOD = 1E9+7; const int N = 2000+5; const int dx[] = {0,0,-1,1,-1,-1,1,1}; const int dy[] = {-1,1,0,0,-1,1,-1,1}; using namespace std; struct Node{LL x;LL y; }A1,A2,B1,B2,C1,C2; int main(){scanf("%lld%lld%lld%lld",&A1.x,&A1.y,&A2.x,&A2.y);scanf("%lld%lld%lld%lld",&B1.x,&B1.y,&B2.x,&B2.y);C1.x=max(min(A1.x,A2.x),min(B1.x,B2.x));C1.y=max(min(A1.y,A2.y),min(B1.y,B2.y));C2.x=min(max(A1.x,A2.x),max(B1.x,B2.x));C2.y=min(max(A1.y,A2.y),max(B1.y,B2.y));LL s1=(A2.x-A1.x)*(A2.y-A1.y);LL s2=(B2.x-B1.x)*(B2.y-B1.y);LL s3=(C2.x-C1.x)*(C2.y-C1.y);if(C2.x>C1.x&&C2.y>C1.y)printf("%d\n",s1+s2-s3);elseprintf("%d\n",s1+s2);return 0; }

?

總結

以上是生活随笔為你收集整理的矩形并的面积(51Nod-2488)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。