首页 > 代码库 > 记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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。