hlg1175小陈老师、桌子、盘子【计算几何】

大意:一个R的桌子能否摆下n个半径为r的盘子  要求所有的盘子靠桌子的边缘放置

分析:

两种思路

一种是看这个桌子放这种盘子最多放多少个

一种是把这种盘子n个放在这个桌子上最少需要多大桌子半径

代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 using namespace std;
 6
 7 const int maxn = 105;
 8 const double PI = 3.14159265358979;
 9
10 int eps(double x) {
11     if(fabs(x) < 1e-8) return 0;
12     if(x < 0) return -1;
13     return 1;
14 }
15
16 int main() {
17     int n;
18     double R, r;
19     while(EOF != scanf("%d %lf %lf",&n, &R, &r) ) {
20         if(n == 1) {
21             if(eps(R - r) >= 0) puts("YES");
22             else puts("NO");
23         } else if(n == 2) {
24             if(eps(R - 2 * r) >= 0) puts("YES");
25             else puts("NO");
26         } else {
27             double x = PI / n;
28             double y = r / sin(x) + r;
29             if(eps(R - y) >= 0) puts("YES");
30             else puts("NO");
31         }
32     }
33     return 0;
34 }

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 using namespace std;
 6
 7 const int maxn = 105;
 8 const double PI = 3.14159265358979;
 9
10 int eps(double x) {
11     if(fabs(x) < 1e-8) return 0;
12     if(x < 0) return -1;
13     return 1;
14 }
15
16 int main() {
17     int n;
18     double R, r;
19     while(EOF != scanf("%d %lf %lf",&n, &R, &r) ) {
20         if(eps(R - 2 * r) >= 0) {
21             double x = asin(r / ( R - r ) );
22             int y = ( int )(( PI + 1e-8) / x);
23             if(y >= n) puts("YES");
24             else puts("NO");
25         } else if(eps(R - r) >= 0){
26             if(n <= 1) puts("YES");
27             else puts("NO");
28         } else {
29             puts("NO");
30         }
31     }
32     return 0;
33 }

时间: 2024-10-25 00:54:37

hlg1175小陈老师、桌子、盘子【计算几何】的相关文章

对于牛老师作业陈老师作业补充(老陈、小石头的典型用户、用例图、场景)

对于牛老师作业陈老师作业补充(老陈,小石头的典型用户.用例图.场景) 一  :  典型用户 (1)名字:小石头 性别:男 年龄:    8岁 职业:学生 收入:无 知识层次能力:小学二年级 生活/工作情况:父母抚养,无工作 动机,目的,困难:想测试自己的运算速度 用户偏好:上网,打小游戏,看动画片 典型场景:放学回家后,老陈了解他的学习情况 典型描述:正确率越高,小石头学的越好 (2)名字:老陈 性别:男 职业:大学教师 年龄:   40岁 收入:6000/月 知识层次能力:本科毕业 生活/工作

YESLAB 7月12日陈老师CCNA+CCNP真机Rack实战课程

CCNA 是网络行业的入门课程,为了能够让学员很好的了解网络,Yeslab提供真实设备Rack,学员实战搭建拓扑.完成配置,为学员打造一个真实的网络,总之只要学员想学,Yeslab毫不吝啬 CCNP路由部分为IE的基础,只有基础打的牢,楼才能盖得高,Yeslab拒绝Paper IE,除此之外Yeslab还针对工作特别开发了面试模拟课程,可以针对集成商,厂商的职位进行不同级别的面试,能够让学员不单单的只是找到工作,而是对职业有个好的规划. 交换一直是思科培训里比较弱化的一门,不过Yeslab提供真

F - 小晴天老师系列——苹果大丰收

F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的. 为了保存苹果,小晴天买了N个一模一样的箱子,想要把苹果放进去,允许有的箱子是空的,请问小晴天有多少种不同的放法呢? 例

小布老师全部视频

http://www.boobooke.com/bbs/thread-7630-1-1.html 小布老师全部视频(更新时间:2011-08-10更新内容:Oracle 11g PL/SQL 23-27讲) 时间, 老师, Fundamentals, 视频 本帖最后由 river7000 于 2012-1-31 09:16 编辑 播布客Oracle交流群"197276682"群(上限500人)已满员,209931123群刚建立,须要增加的群友请加,我会缴请小布老师增加新建的群,欢迎小布

新博andorid 初中级考试评测以及答案-------小林老师出的试卷

一.单项选择题(10题,每题2分,共20分) 1.如果在android应用程序中需要发送短信,那么需要在AndroidManifest.xml文件中增加什么样的权限() A.发送短信,无需配置权限                 B.permission.SMS C.android.permission.RECEIVE_SMS        D.android.permission.SEND_SMS 2.对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(). A.onPause

D - 小晴天老师系列——晴天的后花园

D - 小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小晴天非常漂亮的后花园,打算以后退休之后在里面种种花,养养草,所以现在小晴天打算为他的后花园围上栅栏. 小晴天的后花园可以看成是一个m*n的矩形,但是其中有一些地方种了树,这些地方都不能安装栅栏,现在小晴天把后花园的平面图

G - 小晴天老师系列——可恶的墨水瓶

G - 小晴天老师系列——可恶的墨水瓶 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小晴天老师正在备课,这时,可恶的墨水瓶突然自己打翻了!悲剧发生了!小晴天的备课稿都被墨水弄脏了.... 不过小晴天很乐观~这时他把他的一张纸分成n*m个格子,其中有一些格子被墨水涂黑了,有的没有.那么小晴天想知道,最大的一块

小任老师解读 2016最新软考真题,23号QQ群直播546330070

时间:11月23号晚8点-9点30. 地点:QQ群直播546330070 分享老师:小任老师 河北师范大学软件学院优秀讲师,十年软考辅导备考专家,高级项目经理,系统分析师 分享内容:2016最新软考真题解读 分享大纲: 2016年11月23号晚上8点准时开始 课前活动:到场学员晚7:58开始签到,前10名签到学员奖励100学分. 晚8:00-8:15,2016年下半年系统集成真题介绍   (15分钟) 晚8:15-9:00,2016年下半年系统集成上.下午真题解析(45分钟) 晚9:00-9:2

【51CTO学院三周年】聆听小马老师授课,技能大增啊

大家好,我是2012年注册的51CTO会员帐号.我之前一直学程序开发,对数据分析,大数据这些内容很感兴趣,linux系统管理也有兴趣.51CTO汇集了好多IT名师大家的授课,内容很丰富,对我的学习帮助很大. 去年下半年打算学习HadoopMapreduce,而要搭建这个计算环境,必须先搭建双机或多机的Linux操作系统,所以首先要学习Linux课程,我选择了上座率最高的小马老师的课,结果一下子就被小马老师的授课风格给吸引了,他授课完全脱离课本教材,不是照本宣科的那种,语言诙谐,幽默风趣,善于用生