思路:
求凸包:
先按照x軸排個序
從左往右掃一遍 找到上凸殼 (用叉積)
再從右往左掃一遍 求下凸殼
搞個旋轉卡殼就好啦~
嗯 我手懶
用的c++ complex庫
巨好用!
//by siriusren
#include
#include
#include
using namespace std;
#define cplexd complex
int n,q[4444];
double xx,yy;
cplexd ff[2222];
bool cmp(cplexd a,cplexd b)
int main()
sort(ff+1,ff+1+n,cmp);
q[1]=1,q[2]=2;int ta=2;
for(int i=3;i<=n;q[++ta]=i,i++)
while(ta>=2&&cj(q[ta],q[ta-1],i)>=0)ta--;
int ta2=ta;
for(int i=n-1;i;q[++ta]=i,i--)
while(ta>=ta2+1&&cj(q[ta],q[ta-1],i)>=0)ta--;
double ans=0.0;
for(int i=1,l=2,r=4;i1,r=i+3,i++)
for(int j=i+2;j1;j++)
printf("%.3f",ans/2);
}
BZOJ 1069 求凸包 旋轉卡殼
思路 求凸包 先按照x軸排個序 從左往右掃一遍 找到上凸殼 用叉積 再從右往左掃一遍 求下凸殼 搞個旋轉卡殼就好啦 嗯 我手懶 用的c complex庫 巨好用!by siriusren include include include using namespace std define cplex...
bzoj1069 凸包 旋轉卡殼
問題 在若干個點中取四個點,求圍成的四邊形的最大面積。思路 先求個凸包,n 2 列舉對角線,然後旋轉卡殼o 1 更新左右邊界即可。include include include include include include include include include include inclu...
BZOJ 1069 凸包 旋轉卡殼
在某塊平面土地上有n個點,你可以選擇其中的任意四個點,將這片土地圍起來,當然,你希望這四個點圍成 的多邊形面積最大。第1行乙個正整數n,接下來n行,每行2個數x,y,表示該點的橫座標和縱座標。最大的多邊形面積,答案精確到小數點後3位。50 0 1 01 1 0 10.5 0.5 1.000 資料範圍...