POJ3301最小正方形覆蓋(三分)

2021-08-27 02:56:05 字數 584 閱讀 8018

題意:用最小的正方形覆蓋所有的點,輸出此正方形的面積。

思路:一條邊長與x軸平行的正方形,旋轉的角度與投影到x軸的長度的變化關係是乙個單峰函式,所以用三分解題,但旋轉正方形不方便,所以旋轉座標系。

x=a[i].x*cos(degree)-a[i].y*sin(degree);

y=a[i].x*sin(degree)+a[i].y*cos(degree);

#include#include#include#include#include#define inf 0x3f3f3f3f

#define pi acos(-1.0)

using namespace std;

const double eps =1e-12;

const int maxn = 50;

struct nodea[maxn];

int n;

double c(double degree)

double low = bsearch();

printf("%.2lf\n",low*low);

} return 0;

}

poj 3301 三分求極值

引用大牛部落格內容 勿噴 題目大意 給定二維平面的n個點,要求乙個面積最小的正方形,使其能覆蓋所有的點。解題思路 旋轉座標系,三分法。如果正方形兩相鄰邊是與座標軸平行的,那麼只需求出所有點的橫座標差的最大值,縱座標差的最大值,然後再求兩者的最大值,同樣的道理當正方形相鄰兩邊與座標軸不平行時,旋轉座標...

POJ 2002 檢查正方形

這道題被分類到 hash 裡面了,我覺得hash的作用就是快速的查詢以來判重和計數 這道題要判斷的是是否存在點和正方形是否被計數過。前者用 map 和 pair 來解決,後者嘛,我只列舉某邊作為上邊的情況,所以,不必擔心拉 列舉每條邊作為正方形上邊時候的情況即可。include include in...

poj 2002 HASH判斷正方形

題意 給出一些直角座標系的點,求這些點可以組成多少個正方形。思路 hash 正方形一條邊的兩個點的和,然後求另外兩個點,如果可以找到構成這個正方形的點的話,個數加一 include include define m 1031 using namespace std struct point poin...