-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
当长度为L的一根细木棍的温度升高n度,它会膨胀到新的长度L'=(1+n*C)*L,其中C是热膨胀系数。
当一根细木棍被嵌在两堵墙之间被加热,它将膨胀形成弓形的弧,而这个弓形的弦恰好是未加热前木棍的原始位置。
你的任务是计算木棍中心的偏移距离。
呵呵 第一次知道了卡精度
二分角度
#include <set>
#include <map>
#include <queue>
#include <deque>
#include <cstdio>
#include <string>
#include <vector>
#include <math.h>
#include <time.h>
#include <utility>
#include <cstdlib>
#include <sstream>
#include <cstring>
#include <stdio.h>
#include <iomanip>
#include <iostream>
#include <algorithm>
using namespace std;
double L,t,c,len,mid,num,l,r,ans;
const double PI= 3.1415926535898;
int main()
{
cin>>L>>t>>c;
len=(1+t*c)*L;
l=0;r=PI/2;
while(r-l>0.00000000001)
{
mid=(l+r)/2;
if(mid/(sin(mid))<len/L)l=mid;
else r=mid;
}
L/=2;
double temp=len/(2*mid);
ans=temp-sqrt(temp*temp-L*L);
printf("%.3lf",ans);
return 0;
}