zoukankan      html  css  js  c++  java
  • 洛谷 绕钉子的长绳子

    背景

    平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。

    现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。

    描述

    求出绳子的长度

    格式

    输入格式

    第1行两个数:整数N(1<=N<=100)和实数R。

    接下来N行按逆时针顺序给出N个钉子中心的坐标
    坐标的绝对值不超过100。

    输出格式

    一个数,绳子的长度,精确到小数点后2位。

    样例1

    样例输入1

    4 1
    0.0 0.0
    2.0 0.0
    2.0 2.0
    0.0 2.0

    样例输出1

    14.28

    限制

    各个测试点1s

    提示

    如果你用比较复杂的方法AC了,请想一想有没有更加简便的方法。

     传送门

    找规律 无论N是多少都是他两点间的距离加上一个圆 可以自己画画 。

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    const double Pi=acos(-1.0);
    int i,j,N;
    double R,x[101],y[101],ans;
    int main()
    {
        scanf("%d%lf",&N,&R);
        for(i=0;i<N;++i)
        {
            scanf("%lf%lf",&x[i],&y[i]);
            if(i>=1) ans+=sqrt((x[i]-x[i-1])*(x[i]-x[i-1])+(y[i]-y[i-1])*(y[i]-y[i-1]));
            if(i==N-1) ans+=sqrt((x[i]-x[0])*(x[i]-x[0])+(y[i]-y[0])*(y[i]-y[0]));
        }
        ans+=R*2*Pi;
        printf("%.2lf",ans);
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    RAM调优之日志分析
    HDU Always Cook Mushroom (极角排序+树状数组)
    并非全部的程序猿都适合做技术管理
    HTTP Header具体解释
    Linux 通配符
    寻找正在连接中的网络连接
    hdu 1052 田忌赛马
    linux上电自启动应用程序具体解释
    C++ 中的 const 类型变量
    FileUtil
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6305858.html
Copyright © 2011-2022 走看看