题意简述:
给定(c)个正实数(r_i),你需要在平面直角坐标系上构造(c)个点,满足第(i)个点到原点的距离恰好是(r_i),且这(c)个点构成的凸包面积最大。
数据范围:
(cle8)。
解法:
先强制一些点在凸包上,然后再枚举它们的圆排列顺序,计算此时的最优解,不难证明这样一定不会优于最优解且最优解一定会被枚举到。
设现在有(n)个点(a_1,cdots,a_n),满足(|Oa_i|=r_i),设( heta_i=<vec{Oa_i},vec{Oa_{i+1}}>)。
显然原点一定在最优解的凸包内,所以此时凸包的面积为(f=sumlimits_{i=1}^nr_ir_{i+1}sin( heta_i))。
我们有限制(sumlimits_{i=1}^n heta_i=2pi),根据Lagrange乘数法,此时取到最优解的充要条件是(forall iin[1,n],r_ir_{i+1}cos( heta_i)=lambda)即( heta_i=arccos(frac{lambda}{r_ir_{i+1}}))。
因为(arccos)在([0,1])内单调,因此我们可以二分出让(sumlimits_{i=1}^n heta_i=2pi)的(lambda)然后求出此时的面积。