【湖南集训 4.7】yist

探讨了给定点到原点距离时,如何通过调整点的位置来最大化由这些点构成的凸包面积。对于不同数量的点提供了特定的解决方案,并介绍了利用拉格朗日乘数法求解条件最值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

给出n个点分别到原点的距离ri,问这些点可能的凸包的面积最大值。

20%:n=3
40%:n=4
n8,ri103


分析

一定要注意凸包上不一定有所有n个点!

n=3时,给出是一个三角形。
那么面积最大,当且仅当原点位处三角形的垂心。(证明?调整法)
n=4时,记得要判定退化成三角形的情况。
面积最大时是风筝型。(证明?调整法)

枚举凸包上点的排列后,实际上题目是要求这个

maximize i=0nriri+1sinαi

s.t. i=0nαi=2π

考虑用拉格朗日乘数法。
方便起见用向量表示。

v=(α0,,αn),s=(r0r1,,rn1rn,rnr0),g(v)=i=0nvi

L(v,g(v))=sv+λg(v)=0

Lαi=sicosαi+λ=0αi=arccos(λsi)

i=0nαi=2π

讲道理n+1个方程n+1个变量可以强解,但是这里有三角函数,比较麻烦。

考虑arccos(x)有单调性
这里写图片描述
那么这里可以二分λ,从而求得满足条件,且各变量偏导皆为0的解即为条件最值。
(十分灵活地运用了拉格朗日乘数法)

其实拉格朗日乘数法就是多元函数求最值问题,给它套上了约束(也就是条件最值问题)。
可以发现它这样子构造出来的新方程组,恰好各分量偏导等于0之余,新变量的偏导等于0保证了约束条件的成立。因此这玩意就能求条件最值了。

时间复杂度O(n!logm)
空间复杂度O(n)


插曲

在改题的时候第一次交T掉了,原因是因为数组开太大寻址太慢了233

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值