最新消息:点击查看大S的省钱秘笈

Vijos P1007 绕钉子的长绳子 C语言版

Vijos题解 Slyar 64浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

背景 Background

平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。
现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。

描述 Description

求出绳子的长度

输入格式 Input Format

第1行两个数:整数N(1<=N<=100)和实数R。
接下来N行按逆时针顺序给出N个钉子中心的坐标
坐标的绝对值不超过100。

输出格式 Output Format

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

Tip:算一个木桩的周长,再用两点间距离公式算剩下的长度就行了,需要注意的是不要忘记把最后一个点和第一个点之间的线段加上去。还需要注意精度问题。

#include <stdio.h>
#include <math.h>

#define pi 3.1415926

int i,n,t;
double c,r,length;
double x[101],y[101];

main(){
scanf("%d%lf",&n,&r);
for (i=1;i<=n;i++) scanf("%lf%lf",&x[i],&y[i]);
x[n+1]=x[1];
y[n+1]=y[1];
for (t=1;t<=n;t++) length+=sqrt(pow((x[t]-x[t+1]),2)+pow((y[t]-y[t+1]),2));
c=2*pi*r;
length+=c;
printf("%.2lf",length);
system("pause");
return 0;
}

转载请注明:Slyar Home » Vijos P1007 绕钉子的长绳子 C语言版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址