首页 > 代码库 > 记TJPUのACM新生赛——Stay young, stay simple

记TJPUのACM新生赛——Stay young, stay simple

刚看完国家德比来写点什么吧。。。话说比赛挺无聊,光头也真是命硬。

 

2016-12-3,12:00-17:00,TJPUのACM新生赛如期举行。

总体来说这次比赛体验还是比我第一次进行5小时比赛的浙江理工大学新生邀请赛要舒服的多(那次浙理工OJ直接爆了。。。)

然后凭着运气好和各位大佬的不杀之恩混到了第一。。。

技术分享技术分享

 

 

比赛情况大概是上面图片那样,其实写出的题都挺水的,后面的DFS、BFS以及贪心什么的我都没多想。。。反正不会写。

唯一值得记录的大概是D题,HDOJ上有(5979),是2016ACM/ICPC亚洲区大连站的水题。

 

Problem D:

题目描述:

江主席曾经提出过一个" 五点共圆"的问题, 引起了全国人民的大讨论.
现在, 这儿也有一个平面几何的问题:
有一种特殊的多边形,这种多边形的所有顶点到原点的距离都相同。
连接原点和该多边形的所有顶点可以得到 N条线段,也可以得到每一对相邻线段的夹角。
现在给你这N个夹角的角度,请计算这个多边形的面积。

输入:

多组数据输入
第一行包含两个整数 N 和 D ,分别表示多边形顶点的数量和它们到原点的距离。(3 < = N < = 10,1 < = D < = 10)
下一行包含 N 个整数角度。保证这 N 个角度的总和始终是 360
 
输出:
对于每组数据,输出该多边形的面积,保留小数点后 3 位

Sample Input:

4 1
90 90 90 90
6 1
60 60 60 60 60 60

Sample Output:

2.000
2.598


主要是注意数学函数sin()接受而返回值的类型都是double,而且接受的是弧度而不是角度!!
代码如下:
 1 #include <stdio.h>
 2 #include <math.h>
 3 #define PI 3.1415926
 4 
 5 int main(void)
 6 {
 7     int n,d,i,angle[10];
 8     double s;
 9     while(~scanf("%d",&n))
10     {
11         s=(double)0;
12         scanf("%d",&d);
13         for(i=0;i<n;i++)
14             scanf("%d",&angle[i]);
15         for(i=0;i<n;i++)
16             s+=(double)0.5*sin((double)((double)angle[i]*PI/180))*(double)(d*d); 
17         
18         printf("%.3lf\n",s);
19     }
20 
21     return 0;
22 }

嗯,没什么了。。。讲真。其实下面几个大佬都比我厉害好多。。。

记TJPUのACM新生赛——Stay young, stay simple