北理大一作业题求助

题目总版

xxk2006 @ 2024-11-05 21:34:51

这次傅天晓拿到了很多个圆形的烧饼…于是把它们全扔到了桌上…….每个烧饼视为一个圆,桌面视为无穷大.……问烧饼覆盖的总面积.... 输入: 输入第一行为一个整数 n(1<=n<=1000),之后的n行每行3个整数分别表示xi,yi,ri,(xi,yi)为圆心的坐标,ri为烧饼的半径。所有输入均为正整数且<=1000 输出: 输出一个实数表示总的覆盖面积,保留三位小数。


by xxk2006 @ 2024-11-05 21:36:47

应当注意到所有输入都是很小的,且都是整数。加上这是大一的作业题,因此此题很有可能不需要使用某些很高级的积分方法。


by xxk2006 @ 2024-11-05 21:53:30


by BMnya @ 2024-11-05 21:56:01

@xxk2006

这是原题,数据范围也是一样的:

https://www.luogu.com.cn/problem/SP8073


by syp11 @ 2024-11-05 22:17:39

@xxk2006 看起来是不是可以用Green公式,对于

\iint\limits_D\left(\tfrac{\partial Q}{\partial x}-\tfrac{\partial P}{\partial y}\right)dxdy=\int\limits_LPdx+Qdy

然后令 Q=x,P=-y,只需要求

\iint\limits_Ddxdy=\tfrac12\int\limits_L-ydx+xdy

考虑换元,用圆的参数方程

&=\frac12\int_{\theta_1}^{\theta_2}r^2+y_0r\sin \theta+x_0r\cos \theta d\theta\\ &=r^2\theta-y_0r\cos \theta+x_0r\sin \theta|_{\theta_1}^{\theta_2} \end{aligned}

然后求轮廓线逐段积分就行了。

当然我是口胡的,没有代码。


|