zoukankan      html  css  js  c++  java
  • Codeforces Round #409 (Div. 2) D Volatile Kite

    题意:给一个凸多边形(顺时针方向),对每个点任意移动距离D,求最大的D使得这个多边形一直是凸多边形。

    思路:容易发现对于凸多边形相邻的三个点。。pi,pi+1,pi+2。。pi+1到直线pi,pi+2的距离除以2就是这组点所能接受的最大值。这n组点的最小值就是答案。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1e3 + 10;
    struct Point{
        double x , y;
    }p[maxn];
    int n;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lf%lf",&p[i].x,&p[i].y);
        p[n + 1].x = p[1].x , p[n + 1].y = p[1].y;
        p[n + 2].x = p[2].x , p[n + 2].y = p[2].y;
        double ans = 10000000088 ;
        for(int i = 3;i<=n+2;i++){
            double A = p[i - 2].y-p[i].y; double B = p[i].x - p[i - 2].x; double C = p[i-2].x*p[i].y - p[i].x * p[i - 2].y;
            double d = A * p[i-1].x + B * p[i - 1].y + C;
            if(d < 0) d=-d;
            double dd = sqrt(A * A + B * B);
            d = d / dd;
            d/=2;
            ans = min(d , ans);
        }
        printf("%.8f
    ",ans);
    }
  • 相关阅读:
    不要再胡思乱想了
    sqoop和mysql之间导出问题
    reids3.0安装文档
    java面试
    java面试2
    大数据面试题 ---阿善有用
    rdd-api整理
    RDD弹性分布式数据集特性总结
    spark-on-yarn配置参数
    资源调度
  • 原文地址:https://www.cnblogs.com/rtyfcvb/p/6722791.html
Copyright © 2011-2022 走看看