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