HUST 1584 摆放餐桌
时间:2022-05-07
本文章向大家介绍HUST 1584 摆放餐桌,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1584 - 摆放餐桌
时间限制:1秒 内存限制:128兆
609 次提交 114 次通过
题目描述BG准备在家办一个圣诞晚宴,他用一张大桌子招待来访的客人。这张桌子是一个圆形的,半径为R。BG邀请了很多客人,他很担心他家里的桌子是否足够大才能放得下招待所有客人的盘子。假设所有的盘子的半径都为r,客人们围着桌子而坐,每个客人的盘子分别放在客人的面前,每个盘子在桌内并且挨着桌子的边缘,且盘子之间不能够相交,摆放了4个盘子
现给出桌子的大小R和盘子的大小r,试问BG家是否能够招待n个客人。输入测试包括多组数据,每组数据含一行,每一行有3个数字n、R和r(其中1 ≤ n ≤ 100, 1 ≤ r, R ≤ 1000)输出输出包括多行,每一行为每组数据的结果,当可以放下则输出”YES”,不能放下则输出“NO”。样例输入
4 10 4
5 10 4
1 10 10
样例输出
YES
NO
YES
题目链接:http://acm.hust.edu.cn/problem/show/1584分析:就是一道高中或初中的平面几何题,当时懵逼了好一阵子,感觉数学快成渣渣了!
解:因为sin(圆心角/2)=r/(R-r);
所以圆心角=2*asin(r/(R-r));
所以内切圆的个数=2*pi/(2*sin(r/(R-r))=pi/sin(r/(R-r));
这道题要注意精度问题,不然会WA!
下面附上AC的代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 const double pi=acos(-1.0);
4 #define eps 1e-8;
5 int main()
6 {
7 int num,n;
8 double R,r;
9 while(cin>>n>>R>>r)
10 {
11 if(r>R)
12 num=0;
13 else if(r>R/2)
14 num=1;
15 else
16 num=pi/(asin(r/(R-r)))+eps;
17
18 if(num>=n)
19 cout<<"YES"<<endl;
20 else
21 cout<<"NO"<<endl;
22 }
23 return 0;
24 }
- 使用NUnit在.Net编程中进行单元测试
- 在CentOS上使用Jexus托管运行 ZKEACMS
- PowerDesigner生成Access数据库
- TechEmpower 13轮测试中的ASP.NET Core性能测试
- 反馈型神经网络
- (Head First 设计模式)学习笔记(1)
- [c#]Webservice中如何实现方法重载(overload)以及如何传送不能序列化的对象作参数
- Web.Config文件配置小记
- [原创]web application中使用Profile应该注意的问题
- MRTG FOR WINDOWS 安装指南
- 几种常见复合sql查询语句的linq写法[继续补充中]
- [原创]在msmq3.0中使用http协议发送消息
- 微信小程序开发探索之路
- 前端周记 2017 年终总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 算法篇:链表之合并有序链表
- 速读原著-UnixLinux基础(六)
- Python GUI编程:Tkinter
- JVM系列之:通过一个例子分析JIT的汇编代码
- 二叉查找树-增删查和针对重复数据处理的 Java 实现
- 手把手教你实现自定义Spring Boot的 Starter
- JVM详解之:本地变量的生命周期
- VBA解析复合文档01——实现的功能
- VBA解压缩ZIP文件09——解压-静态Huffman
- 第5章 流水线数据脱敏-Jenkins系统凭据管理
- 100% 展示 MySQL 语句执行的神器-Optimizer Trace
- Kafka消费者分区分配策略及自定义分配策略
- Java8新特性之日期、时间操作
- Java8新特性之Stream流(基础篇)
- Effective Java(一)