URAL 1020 Rope 简单几何
2016-09-07 09:48
357 查看
题意:按照顺序给定N个点,每个点有半径R,问说用线环绕N个点所需要的长度。
解题:因为需要围成一个圈,所以旋转角度一定是一周,板径又都相同,所以直接就是两两点之间的距离加上一个周长。
#include<iostream>
#include<cstdio>
#include<cmath>
const double pi = 4 * atan(1.0);
using namespace std;
double dist(double x1,double y1,double x2,double y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main(){
int i,j,k,n;
double m;
cin>>n>>m;
double sum=m*2*pi;
double x1,y1,x2,y2;
cin>>x1>>y1;
double s,t;
s=x1;t=y1;
for(i=2;i<=n;i++){
cin>>x2>>y2;
sum+=dist(x1,y1,x2,y2);
x1=x2;y1=y2;
}
sum+=dist(x1,y1,s,t);
printf("%.2lf\n",sum);
return 0;
}
解题:因为需要围成一个圈,所以旋转角度一定是一周,板径又都相同,所以直接就是两两点之间的距离加上一个周长。
#include<iostream>
#include<cstdio>
#include<cmath>
const double pi = 4 * atan(1.0);
using namespace std;
double dist(double x1,double y1,double x2,double y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main(){
int i,j,k,n;
double m;
cin>>n>>m;
double sum=m*2*pi;
double x1,y1,x2,y2;
cin>>x1>>y1;
double s,t;
s=x1;t=y1;
for(i=2;i<=n;i++){
cin>>x2>>y2;
sum+=dist(x1,y1,x2,y2);
x1=x2;y1=y2;
}
sum+=dist(x1,y1,s,t);
printf("%.2lf\n",sum);
return 0;
}
相关文章推荐
- Ural-1020. Rope(简单计算几何)
- ural 1020. Rope(几何)
- URAL 1020 Rope(圆与切线)
- Ural 1020 Rope 解题报告
- 【解题报告】 Ural 1348 简单的计算几何
- URAL 1572 Yekaterinozavodsk Great Well(简单几何)
- ural 1020 Rope
- URAL 1020 Rope
- URAL1020 ROPE
- Ural 1020 Rope 解题报告
- ural 1020 Rope
- ZOJ 1608 Two Circles and a Rectangle(简单计算几何)
- Ural_1348. Goat in the Garden 2(计算几何)
- URAL 1080 Map Colouring [简单DFS]
- Ogre渲染简单的几何物体的方法
- hdu 1020 简单字符串
- ural 1020. Rope
- ural 1207 计算几何
- URAL - 1009 简单DP..新的开始...
- URAL1009 K-based Numbers,简单DP