题目:http://poj.org/problem?id=3045
题意:每个牛都有一个wi和si,试将他们排序,每头牛的风险值等于前面所有牛的wj(j<i)之和-si,求风险值最大的牛的最小风险值
分析:这就是noip2012 T2的来源= =只不过这里是加,noip里是乘
不妨设所有牛都按最优顺序排好了,考虑相邻的两头牛i和i+1,如果交换他们的位置,那么对前面和后面的结果都无影响,只是他们两个的风险值变化了(变大了),于是我们可以得到这个时候i和i+1的关系
设w1+w2+...+wi-1=W
那么如果i和i+1不交换:
i的风险值:W-si ①
i+1的风险值:W+wi-si+1 ②
如果i和i+1交换:
i+1(现在在第i个位置)的风险值:W-si+1 ③
i(现在在第i+1个位置)的风险值:W+wi+1-si ④
很容易可以看出②>③,④>①,而又假设原顺序是最优的,那么后来交换后肯定不是最优的,即②<④,即wi+si<wi+1+si+1,即最优序列一定满足wi+si<wi+1+si+1
所以算法很简单,按wi+si排序即可
总结:看见求最大的最小不能定式思维二分,当二分不行时可以观察题目的特点,抓住特点很重要
[USACO2005][POJ3045]Cow Acrobats(贪心),码迷,mamicode.com
[USACO2005][POJ3045]Cow Acrobats(贪心)
原文地址:http://www.cnblogs.com/wmrv587/p/3700452.html