POJ Expanding Rods
题目大意
给定L,n,C,L为红色线段,L(1+n*C)为绿色弧,求两者中点的距离
二分圆心角度数,接下来就是几何的能力了
根据正弦定理,可得:
Lsinθ=rsin(90°−θ)
则弧长:
a=πr⋅θ180
将a与nL作比较来二分
精度满天飞 QWQ
代码如下:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
double pi=3.1415926535897932384626433832795,eps=0.000000001;
double L,C,n,nL;
using namespace std;
double work(double mid)
{
double a1=sin(2*pi*mid/360),a2=sin(2*pi*(90-mid/2)/360);
double r=L/a1*a2;
return 2*r*pi*mid/360;
}
int main()
{
while(scanf("%lf%lf%lf",&L,&n,&C))
{
if(L==-1&&n==-1&&C==-1)return 0;
nL=(1+n*C)*L;
if(nL==L){printf("0.000\n");continue;}
double l=0,r=180,mid;
while(r-l>eps)
{
mid=(l+r)/2;
if(work(mid)<nL)l=mid;
else r=mid;
}
printf("%.3lf\n",L/sin(2*pi*l/360)*sin(2*pi*(90-mid/2)/360)-sqrt(pow(L/sin(2*pi*l/360)*sin(2*pi*(90-mid/2)/360),2)-pow(L/2,2)));
}
}
POJ Expanding Rods的更多相关文章
- D - Expanding Rods POJ - 1905(二分)
D - Expanding Rods POJ - 1905 When a thin rod of length L is heated n degrees, it expands to a new l ...
- POJ 1905 Expanding Rods
Expanding Rods Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1 ...
- poj 1905 Expanding Rods(木杆的膨胀)【数学计算+二分枚举】
...
- POJ 1905:Expanding Rods 求函数的二分
Expanding Rods Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13780 Accepted: 3563 D ...
- POJ 1905 Expanding Rods(二分)
Expanding Rods Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 20224 Accepted: 5412 Descr ...
- Expanding Rods(二分POJ1905)
Expanding Rods Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13688 Accepted: 3527 D ...
- UVA 10668 - Expanding Rods(数学+二分)
UVA 10668 - Expanding Rods 题目链接 题意:给定一个铁棒,如图中加热会变成一段圆弧,长度为L′=(1+nc)l,问这时和原来位置的高度之差 思路:画一下图能够非常easy推出 ...
- UVA 10668 Expanding Rods
Problem A: Expanding Rods When a thin rod of length L is heated n degrees, it expands to a new lengt ...
- 1137 - Expanding Rods
1137 - Expanding Rods PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: 32 M ...
随机推荐
- vue-learning:22 - js - directives
directives 在讲解视图层指令时,我们讲到ref特性,使用它我们可以获取当前DOM元素对象,以便执行相关操作. <div id="app"> <input ...
- Linux 内核取消 urb
为停止一个已经提交给 USB 核心的 urb, 函数 usb_kill_urb 或者 usb_unlink_urb 应 当被调用: int usb_kill_urb(struct urb *urb); ...
- CSS兼容性问题的解决方式(更新中···)
1.清除浮动的兼容性(低版本的浏览器不兼容问题) .clearfix:after{ content:""; clear:both; display:block; visibilit ...
- CS224n: Natural Language Processing学习准备
cs224n 斯坦福网址,里面包含讲课视频,ppt,代码,学习完后做一个问答系统 http://web.stanford.edu/class/cs224n/index.html 下载anaconda, ...
- java的package和import机制
在说package.import机制前我们先来了解下java的CLASSPATH. CLASSPATH顾名思义就是class的路径,当我们在系统中运行某个java程序时,它就会告诉系统在这些地方寻找这 ...
- libcurl库的简单使用
#include <stdio.h> #include <tchar.h> #include <windows.h> #include <process.h& ...
- SpringBoot拦截器没有生效的原因
最近的一个项目中,需要实现一个记录系统请求日志的功能,我通过拦截器实现了这个功能,但是,测试的时候发现拦截器没有发挥作用,检查了很久,没有发现错的地方,系统也没有报错,最终在网上找打了答案. 原来之前 ...
- JVM探秘:内存分配与回收策略
本系列笔记主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,是这本书的读书笔记. 内存分配一般关注的是对象在堆上分配的情况,对象主要分配在新生代的Eden区中,如果启用 ...
- [UWP]XAML中的响应式布局技术
响应式布局的概念是一个页面适配多个终端及不同分辨率.在针对特定屏幕宽度优化应用 UI 时,我们将此称为创建响应式设计.WPF设计之初响应式设计的概念并不流行,那时候大部分网页设计师都按着宽度960像素 ...
- docker练习-堆栈
介绍 分布式应用程序层次结构的顶部:堆栈. 堆栈是一组相互关联的服务,它们共享依赖关系,并且可以协调和缩放在一起. 单个堆栈能够定义和协调整个应用程序的功能(尽管非常复杂的应用程序可能希望使用多个堆栈 ...