UVA 10678 The Grazing Cow(椭圆定义)
题意:
有两个柱子,柱子之间的距离是d. 然后这两个柱子之间有一根长l(l>d)的绳子,绳子上有个圆环,圆环拉着一头牛. 问你牛的活动范围.
分析:
其实不论牛如何移动,它到两个柱子的距离之和总<=l的. 根据椭圆定义: 椭圆是平面内到两个固定点(两焦点)的距离之和是常数(2a>2c)的点的轨迹。
我们可以知道其实两个柱子就是焦点, 而柱子之间的距离为2*c, 绳子的长度为2*a, 最终椭圆的面积π*a*b 就是我们所求.
AC代码:
#include<cstdio>
#include<cmath>
using namespace std;
const double PI=acos(-1);
int main()
{
int T; scanf("%d",&T);
while(T--)
{
double d,l;
scanf("%lf%lf",&d,&l);
double a=l/2;
double c=d/2;
double b=sqrt(a*a-c*c);
printf("%.3lf\n",PI*a*b);
}
return 0;
}