首页 > 其他 > 详细

洛谷 绕钉子的长绳子

时间:2017-01-19 12:44:37      阅读:176      评论:0      收藏:0      [点我收藏+]

背景

平面上有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);
}

 

洛谷 绕钉子的长绳子

原文:http://www.cnblogs.com/ruojisun/p/6305858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!