Ural 1020 Rope 解题报告

题意:

已知每个圆圆心的坐标和半径,求绳的长度。。

思路:

每个圆心围成的多边形的周长,加上圆的周长。

代码:

#include <iostream>
#include
<cmath>
#include
<iomanip>
usingnamespace std;


constdouble PI=3.141592;
typedef
struct
{
double x,y;
}Point;

Point p[
103];

double a[103];
int main()
{
int n;
double r;
cin
>>n>>r;
cin
>>p[0].x>>p[0].y;
double sum=0;
for(int i=1;i<n;i++)
{
cin
>>p[i].x>>p[i].y;
sum
+=sqrt((p[i].x-p[i-1].x)*(p[i].x-p[i-1].x)+(p[i].y-p[i-1].y)*(p[i].y-p[i-1].y));
}
sum
+=sqrt((p[0].x-p[n-1].x)*(p[0].x-p[n-1].x)+(p[0].y-p[n-1].y)*(p[0].y-p[n-1].y));
sum
+=2*PI*r;
cout
<<setprecision(2)<<setiosflags(ios::fixed| ios::showpoint)<<sum<<endl;
return0;

}
原文地址:https://www.cnblogs.com/andyidea/p/ural1020.html