UVA10678 The Grazing Cow 题解

发布时间 2023-08-17 23:04:29作者: Code_Fish_Hp

题目链接

思路

一道简单模拟题。

经过模拟,我们不难发现,牛的活动轨迹是一个椭圆。根据椭圆形面积公式得到 \(S = \pi a b\)。其中,牛可以到的最左边或最右边时 \(a = \frac{l}{2}\),距离中心最远时 \(b = \frac{\sqrt{l^2 - d^2}}{2}\)

注意

  • 有多组测试点,每次都应输出结果并换行。
  • 精度问题,使用 cmath 库内的 M_PI 函数解决。
  • 输出保留三位小数。

参考代码(请勿抄袭):

#include<bits/stdc++.h>
using namespace std;
int n,d,l;
double a,b;

int main(){
	scanf("%d",&n);//有多组数据
	for(int i=1;i<=n;i++){//每组数据的处理
		scanf("%d%d",&d,&l);
		a=l/2.0;
		b=sqrt(a*a-(d/2.0)*(d/2.0));
		printf("%.3lf\n",M_PI*a*b);
	}
	return 0;
}