关于贪心排序问题证明的思路启发

考虑这样一个问题:
有n头牛,每头牛有重量 w i w_i wi和承重能力 p i p_i pi这两个属性,现在要把这几头牛一头一头堆叠在一起,引入 P D V i PDV_i PDVi(危险系数)= ∑ k = 0 i − 1 \sum_{k=0}^{i-1} k=0i1 w k w_k wk - p i p_i pi,现要求对这几头牛的位置进行排序,使得其中危险系数最大的牛的危险系数为最小。
这显然是一道简单的贪心排序问题,影响牛次序的无非就只有两个因素, w i w_i wi p i p_i pi,通过直感我们可以得到是 w i w_i wi+ p i p_i pi决定了牛的次序,但这要怎么证明呢?
在这里插入图片描述

现在有两只牛,它们中间可能有牛,记中间的牛重量总和为w2,上面也有可能有牛,记上面牛重量总和为w1,这样易知 P D V j = w 1 + w 2 + a − a PDV_j=w1+w2+a-a PDVj=w1+w2+aa, P D V i = w 1 − b PDV_i=w1-b PDVi=w1b,显然最大是 P D V j PDV_j PDVj
现在将两头牛交换:
在这里插入图片描述

可得 P D V j = w 1 + w 2 + b − b PDV_j=w1+w2+b-b PDVj=w1+w2+bb P D V i = w 1 − a PDV_i=w1-a PDVi=w1a,可以发现,两次所求的最大PDV是一样的。
这样的结果可以推广到任意队伍中的任意两头牛上,甚至是由多头牛组成的任意两个模块上,显然是 w i w_i wi+ p i p_i pi决定了牛的排序,因为影响排序的统共就这两个元素,假使其中一种元素的影响要比另一种元素要大一些,都不会得到这样的结论,所以,将牛的次序按 w i w_i wi+ p i p_i pi排序,就能得到最终答案,证毕。

猜你喜欢

转载自blog.csdn.net/skl4869/article/details/120994503