旋轉卡殼,三種實現方式。

2021-09-22 20:14:56 字數 1037 閱讀 7286

上述中說的三種是方式分別是

kuangbin的-容易理解

挑戰書上的-容易實現

我的-我的理解

第一種kuangbin板子

class point

point(double x,double y):x(x),y(y)

point operator+ (point p)

point operator -(point p)

point operator *(double d)

double operator *(point p)

double operator ^(point p) //內積

double det(point p)

double len()

};}//旋轉卡殼,求兩點間距離平方的最大值

int rotating_calipers(point p,int n)//要求p序列為凸包序列

return ans;

}

第二種挑戰書上的-,不過我現在還是不是非常理解。

double add(double a,double b)

int i=0,j=0;//某個方向的對踵點對

//求出x軸方向的對踵點對

for(int k=0;k第三種 根據自己理解寫出的,旋轉卡殼求出每個邊對應的對踵點,更新點對最大距離。

double rotaing_calipers(p* ps,int pn)// 保證輸入的已經是凸包且按順序給出點

vectorqs(ps,ps+pn);

int n=qs.size();

if(n==2)

int j=1;

double ans=0.0;

for(int i=0;i=0 ) j=(j+1)%n;//找到i-i+1邊對應的對踵點j

ans=max(ans, max(dist(qs[j],qs[i]), dist(qs[j],qs[(i+1)%n] )) );

}return ans;

}

json三種實現方式

size large 使用ajax的開發專案過程中,經常需要將json格式的字串返回到前端,前端解析成js物件 json ecma 262 e3 中沒有將json概念寫到標準中,還好在 ecma 262 e5 中json的概念被正式引入了,包括全域性的json物件和date的tojson方法。1,e...

cmdb實現三種方式

為什麼要做cmdb?1 實現運維自動化,cmdb是實現運維自動化的基石 2 之前做資產統計的時候,使用execl來統計,為了年底資產審計方便 3 運維日常工作繁瑣,4 執行環境不統一 agent方式實現 agent方式,可以將伺服器上面的agent程式作為定時任務,定時將資產資訊提交到指定api錄入...

https實現三種方式

單個ecs,新增網域名稱證書 公網 私有 並新增跳轉https 負載均衡 upstream web cluster server server web cluster server server 1 公網證書 2.需要slb新增證書,將slb的80埠刪除 3.為slb配置基於https的訪問 4.將...