usaco acrobat 证明

本文通过证明贪心算法在特定条件下能够得到最优解,详细阐述了其在牛群排列优化问题中的应用过程。通过交换相邻两头牛的位置来优化牛群的排列顺序,最终达到减小每头牛所承受压力的目的。

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

题目在这里我就不再重复。

此题用了贪心算法,每次都取w[i]+s[i]值最大的放在下面。但是为什么这样做可以得到最优解?下面给出证明。

设最优排列时牛的编号由上至下为1,2,3,4....x-1,x+1,  x. 其中w[1]+w[2]+...+w[x-2]=W, s[x]+w[x]<s[x+1]+w[x+1],

(也就是一头s[i]+w[i]大的牛没有在下边)

那么我们交换x和x+1的位置,由于x上方的牛的总重量减小,所以x的压力减小;现在x+1在最下面,它受的压力为

p1=W+w[x]-s[x+1]

之前x的压力为

p2=W+w[x+1]-s[x]

p1-p2<0

所以交换后的解没有变坏。

重复这样的过程可知,最优方案即是按s[i]+w[i]排序


PS. 开始没有想到交换相邻的两头牛,而是考虑了其他比较诡异的交换,结果没证出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值