Frieren and Rotating Calipers Solution
由题矩形长和宽需要与$x$轴或 $y$轴平行
找到最大,最小的$x$, $y$记为$max_x, min_x, max_y, min_y$
答案$(max_x - min_x) * (max_y - min_y)$
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
   | #include <bits/stdc++.h> using namespace std;
  int main(){
      int t;     cin >> t;     while(t--){         int n;         cin >> n;         vector<int> x(n), y(n);         for(int i = 0;i < n;i++){             cin >> x[i] >> y[i];         }         int max_x = *max_element(x.begin(), x.end());         int max_y = *max_element(y.begin(), y.end());         int min_x = *min_element(x.begin(), x.end());         int min_y = *min_element(y.begin(), y.end());         cout << (max_x - min_x) * (max_y - min_y) << "\n";     }
      return 0; }
   | 
 
复杂度$O(T * n)$
杂记
学习旋转卡壳时想到的签到题,赛时凡过题者都过了这题