C小加

厚德 博学 求真 至善 The bright moon and breeze
posts - 145, comments - 195, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Ural 1020 Rope 解题报告

Posted on 2011-12-11 20:30 C小加 阅读(1305) 评论(1)  编辑 收藏 引用 所属分类: 解题报告

题意:

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

思路:

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

代码:

#include <iostream>
#include 
<cmath>
#include 
<iomanip>
using namespace std;

const double 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;
    
return 0;

}

 

Feedback

# re: Ural 1020 Rope 解题报告  回复  更多评论   

2011-12-13 17:45 by glueless lace wigs
不错,借鉴一下

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理