題意:用最小的正方形覆蓋所有的點,輸出此正方形的面積。
思路:一條邊長與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...