您的位置:首页 > 其它

【HDOJ5979】Convex(三角函数)

2018-10-06 16:26 423 查看

题意:n个点在一个半径为R的圆上,给出这n个点顺时针的夹角差值,求这n个点的凸包面积

n<=10,R<=10

思路:S=1/2*sinθ*a*b

角度转弧度再用sin

C++有点小毛病,叫队友改了下

1 #include<cstdio>
2 #include<cstring>
3 #include<string>
4 #include<cmath>
5 #include<iostream>
6 #include<algorithm>
7 #include<map>
8 #include<set>
9 #include<queue>
10 #include<vector>
11 using namespace std;
12 typedef long long ll;
13 typedef unsigned int uint;
14 typedef unsigned long long ull;
15 typedef pair<int,int> PII;
16 typedef vector<int> VI;
17 #define fi first
18 #define se second
19 #define MP make_pair
20 #define N   1100000
21 #define MOD 1000000007
22 #define eps 1e-8
23 #define pi  acos(-1)
24
25
26 int n;
27 double L;
28
29
30 int read()
31 {
32    int v=0,f=1;
33    char c=getchar();
34    while(c<48||57<c) {if(c=='-') f=-1; c=getchar();}
35    while(48<=c&&c<=57) v=(v<<3)+v+v+c-48,c=getchar();
36    return v*f;
37 }
38
39 int main()
40 {
41     while(scanf("%d%lf",&n,&L)!=EOF)
42     {
43          double ans=0;
44          for(int i = 1; i <= n; ++i)
45          {
46              double x;
47              scanf("%lf",&x);
48              x/=180*1.0;
49              x*=pi*1.0;
50              ans+=1.0/2*L*L*sin(x);
51          }
52          printf("%.3lf\n",ans);
53     }
54     return 0;
55 }

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: