题目链接:https://vjudge.net/problem/POJ-1905

题意:有一根长len的木棍,加热了n度,长度会膨胀为len*(1+n*c),c为膨胀系数。现在把这根木棍夹在两堵墙之间,木棍会向上弯曲变成弧形,求弧形中点和原木棍中点的高度差。

思路:刚开始以为是几何题,几何肯定是能做的。然后发现题解是二分,第一次二分double类的变量,学到了。设所求答案为dis,通过dis可以勾骨出半径R,然后求出弧长L,再比较L与真实弧长len。显然dis和L满足二分的单调性,那么就可以做了。

AC代码:

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std; double len,len1,n,c;
const double eps=1e-; bool check(double d){
double R=d/+len*len//d;
return *R*acos((R-d)/R)<=len1;
} int main(){
while(scanf("%lf%lf%lf",&len,&n,&c),len>=){
if(len<eps||n<eps||c<eps){
printf("0.000\n");
continue;
}
len1=(1.0+n*c)*len;
double l=1e-,r=len/,mid;
while(l<=r){
mid=(l+r)/;
if(check(mid)) l=mid+(1e-);
else r=mid-(1e-);
}
printf("%.3f\n",r);
}
return ;
}

最新文章

  1. [转] &quot;self = [super init]&quot;的解释与潜藏bug
  2. ios7 ios8 cell中下划线偏移(separator Insets)处理方法
  3. Android视图绘制流程完全解析,带你一步步深入了解View(二)
  4. C++ 箭头-&gt; 双冒号:: 点号.操作符区别
  5. 最长公共子串 NYOJ 36
  6. POJ 1523 (割点+连通分量)
  7. tornado解析http body的过程分析
  8. 闲扯 Javascript 01 实现选项卡
  9. Mac os 进行Android开发笔记(1)
  10. Javaweb---服务器Tomcat配置
  11. Linuxc - define 与 typedef的区别
  12. Java获取当前的年月
  13. 数学paper写作注意事项
  14. DBUtils工具类
  15. Tomcat 配置详解/优化方案(转)
  16. What is Zeebe?
  17. django直接操作MySQL,中文乱码
  18. hdu3874
  19. laravel中的Contracts, ServiceContainer, ServiceProvider, Facades关系
  20. SQL SERVER 扩展属性的操作方法

热门文章

  1. OFDM符号速率与子载波间隔的关系
  2. OFDM发端硬件实现原理图
  3. HDU3501 Calculation 2 [欧拉函数]
  4. 新西达电调初始化代码,使用nodejs ffi技术调用wiringpi,代码使用typescript编写
  5. Educational Codeforces Round 53 E. Segment Sum(数位DP)
  6. chrome获取xpath元素-f12工具
  7. Leetcode题目226.翻转二叉树(简单)
  8. Nginx之configure选项
  9. 在linux上使用impdp命令时提示ORA-12154: TNS:could not resolve the connect identifier specified的问题
  10. mysql 创建++删除 数据库