CodeForces - 630P Area of a Star (数学几何&正弦定理求面积)
2016-03-10 12:18
337 查看
CodeForces - 630P Area of a Star
Description It was decided in IT City to distinguish successes of local IT companies by awards in the form of stars covered with gold from one side. To order the stars it is necessary to estimate order cost that depends on the area of gold-plating. Write a program that can calculate the area of a star. A "star" figure having n ≥ 5 corners where n is a prime number is constructed the following way. On the circle of radius rn points are selected so that the distances between the adjacent ones are equal. Then every point is connected by a segment with two maximally distant points. All areas bounded by the segments parts are the figure parts. Input The only line of the input contains two integers n (5 ≤ n < 109, n is prime) and r (1 ≤ r ≤ 109) — the number of the star corners and the radius of the circumcircle correspondingly. Output Output one number — the star area. The relative error of your answer should not be greater than 10 - 7. Sample Input Input 7 10 Output 108.395919545675 Source Experimental Educational Round: VolBIT Formulas Blitz //题意: 给出n,r表示在半径为r的圆里有一个n角星,问这个n角星面积为多少。 //思路: 每个角顶点到圆心可以分为两个全等三角形,先利用圆周角和圆心角的关系求出三角形的三个角,再利用正弦定理,可以求出三角形的边长,再利用s=(1/2)*a*b*sin(c),求出每个三角形的面积,再将s*2*n(2*n为全等三角形的个数)即为所求。 #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #define INF 0x3f3f3f3f #define ll long long #define N 10010 #define M 1000000007 #define PI acos(-1.0) using namespace std; int main() { double n,r; while(scanf("%lf%lf",&n,&r)!=EOF) { double x1=PI/n; double x2=PI/(2*n); double x3=PI-x1-x2; double len=(r*sin(x2))/sin(x3); double s=0.5*len*r*sin(x1); s=s*2*n; printf("%.8lf\n",s); } return 0; } |
相关文章推荐
- opencl:cl::make_kernel的进化
- 我的sublime text3 配置文件设置
- 基因数据处理1之mapping_to_cram
- CTO训练营,筑梦CTO
- OpenCV3.10 + VS2013 配置笔记
- [疯狂Java]AWT剪切板:剪切板概念、文本传递
- PAT (Basic Level)1039. 到底买不买
- godaddy的服务器SSL证书的生成和安装
- Linux中用户、组、权限管理
- 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
- HTML学习笔记(二)——文本元素
- 二叉排序树
- 从关系型数据库到非关系型数据库
- JDBC编程
- 微信
- 简单的异步HTTP服务端和客户端
- 欢迎使用CSDN-markdown编辑器
- 【python】GET请求与POST请求
- Problem C: 小数计算——结构体
- QPointer的使用浅析