GitBook

这里写图片描述 这里写图片描述

可推出关于圆弧半径r和h的方程

$\sqrt{r^2-(\dfrac{l}{2})^2}+h=r$ ① $2arsin(\dfrac{l}{2r})r=l’$②

由①式可化简出 $r=\dfrac{h^2+\dfrac{l^2}{4}}{2h}$ 代入②式中可求出l’

把其与根据题目数据求出的l’比较 可得到mid与res的比较关系 从而可以进行二分查找

#include<stdio.h>
#include<math.h>
double L,n,c;
bool judge(double m) {
	double t=(m*m+L*L/4.0)/m/2.0;
	if(2*asin(L/2.0/t)*t>=(1+n*c)*L)
		return true;
	else
		return false;
}
int main() {
	int T,kase=0;
	scanf("%d",&T);
	while(T--) {
		scanf("%lf %lf %lf",&L,&n,&c);
		double l=0,r=L;
		while(r-l>1e-8) {
			double mid=(l+r)/2;
			if(judge(mid))
				r=mid;
			else
				l=mid;
		}
		printf("Case %d: %.8lf\n",++kase,r);
	}
	return 0;
}

题目地址:【Light】[1137]Expanding Rods