您的位置:首页 > 其它

旋转卡壳 背诵用模板

2017-03-13 17:02 127 查看
 double rotating_calipers(point *poi,int n) 

{

    int q=1;//第一个的对踵点是第二个(初始化) 

    double ans=0;//答案清零 

    poi
=poi[0];//最后一个点是它本身 (防+1溢出) 

     for(int p=0;p<n;p++)//找所有点 

      {

       while(cha(poi[p+1],poi[q+1],poi[p])>cha(poi[p+1],poi[q],poi[p]))//找三角形面积最大的:枚举法 

             q=(q+1)%n;//不忘模n 

     ans=max(ans,max(dist(poi[p],poi[q]),dist(poi[p+1],poi[q+1])));//三角形两边找一个最大的(还要处理p+1和q+1是防止平行) 

      }

 return ans;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: