pku1905 Expanding Rods

9 篇文章 0 订阅
1 篇文章 0 订阅

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1905

题意简述:给定n,l,c。n、c是常数,l是木板的初始长度,求弯曲后木板中心的间距。

解题思路:二分枚举间距对应的角度求解,其关键在于推出公式。

由公式 弦长 = 2*r*sin(弧长/2*r)

即b=2*r * sin(a / (2r)), a为弧长,b为弦长

即b/a=2r/a*sin(a/(2r))

角a/2r相当于a*pi / 2r*pi 即弧角=弧度=弧长/半径

推理可知范围在0~pi/2 假设为x=a/(2r),即为弧长一半所对应的圆心角

即b/a=sinx/x

设f(x)=sinx/x,这个函数显然是单调递减的,于是二分贪心求解。

 

在弦长一半b/2与所求高度result所围成的直角三角形中,由正弦定理得: sin(y)/result=sin(z)/(b/2) ,其中y =(pi-x)/2-(pi/2-x),z=(pi-x)/2

化简为: result=(1 - cos(x)) * b / (2 * sin(x))。

 

代码:

  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值