【蓝桥杯官网试题 - 基础练习】 矩形面积交 (几何)
生活随笔
收集整理的這篇文章主要介紹了
【蓝桥杯官网试题 - 基础练习】 矩形面积交 (几何)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
問題描述
平面上有兩個矩形,它們的邊平行于直角坐標系的X軸或Y軸。對于每個矩形,我們給出它的一對相對頂點的坐標,請你編程算出兩個矩形的交的面積。
輸入格式
輸入僅包含兩行,每行描述一個矩形。
在每行中,給出矩形的一對相對頂點的坐標,每個點的坐標都用兩個絕對值不超過10^7的實數表示。
輸出格式
輸出僅包含一個實數,為交的面積,保留到小數后兩位。
樣例輸入
1 1 3 3
2 2 4 4
樣例輸出
1.00
解題報告:
? 直接判斷了如果是負數直接輸出,但是忘了考慮X-x或者Y-y如果兩個都是正數,那也會算出正值,但是這個顯然我們要輸出0的。
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair using namespace std; const int MAX = 2e5 + 5;int main() {double x1,x2,x3,x4,y1,y2,y3,y4;cin>>x1>>y1>>x2>>y2;cin>>x3>>y3>>x4>>y4;if(x1>x2) swap(x1,x2);if(x3>x4) swap(x3,x4);if(y1>y2) swap(y1,y2);if(y3>y4) swap(y3,y4);double x = max(x1,x3),X = min(x2,x4);double y = max(y1,y3),Y = min(y2,y4);double ans = max((X-x)*(Y-y),0.0);if(X-x<0 || Y-y<0) ans=0;printf("%.2f\n",ans);return 0 ; }?
總結
以上是生活随笔為你收集整理的【蓝桥杯官网试题 - 基础练习】 矩形面积交 (几何)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “割韭菜”经典操作!26位中国牛散被罚5
- 下一篇: 【2019牛客暑期多校训练营(第二场)-