Java教程

贪心

本文主要是介绍贪心,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

贪心

P2672 [NOIP2015 普及组] 推销员

按 \(A_i\) 降序排序,对于每个 \(x\),答案能为 $$\max \{\space (\sum_{i=1}^{x} A_i)+2\times\max_{i=1}^{x}\{S_i\}\space,\space(\sum_{i=1}^{x-1}A_i)+\max_{i=1}^{n}\{2\times S_i+A_i\}\space\}$$因为最大距离仅算一次,所以舍去前面 \(x\) 个中最小的就好了。

邻项交换法

P1489 猫狗大战

先分为两组,算出血量差,遍历每一对,若交换后血量差可以减小,则交换。

另解,\(S\) 为血量和,\(f_{i,j}\) 表示 \(i\) 个人是否可以达到组成血量 \(j\),遍历 \(f_{n/2,j}\) 选出 \(\min\{|2\times f_{n/2,j}-S|\}\) 。

P2123 皇后游戏

待填坑。

To be continued

这篇关于贪心的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!