Vijos P1007 绕钉子的长绳子

来源:互联网 发布:新能源汽车产销数据 编辑:程序博客网 时间:2024/04/30 21:16
绕钉子的长绳子

背景

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

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

描述

求出绳子的长度

格式

输入格式

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

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

输出格式

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

样例1

样例输入1

4 10.0 0.02.0 0.02.0 2.00.0 2.0

样例输出1

14.28

限制

各个测试点1s

提示

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

来源

Ural

 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cmath> 5 #define maxn 110 6 double x[maxn],y[maxn],R,ans; 7 int n; 8 int main(){ 9     scanf("%d%lf",&n,&R);10     for(int i=1;i<=n;i++)11       scanf("%lf%lf",&x[i],&y[i]);12     for(int i=2;i<=n;i++){13         ans+=sqrt((x[i]-x[i-1])*(x[i]-x[i-1])+14             (y[i]-y[i-1])*(y[i]-y[i-1]));15     }16     ans+=sqrt((x[n]-x[1])*(x[n]-x[1])+17             (y[n]-y[1])*(y[n]-y[1]));18     ans+=R*2*3.14159;19     printf("%.2lf",ans);20     return 0;21 }

 

0 0
原创粉丝点击