P1842 奶牛玩杂技
题目描述
N N N 头奶牛中的每一头都有自己的重量 W i W_i Wi 以及强壮程度 S i S_i Si。
一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,风险值越大,这只牛撑不住的可能性越高。
您的任务是确定奶牛的排序,使得所有奶牛的风险值中的最大值尽可能的小。
链接
思路
我们先将奶牛按照顺序排列,如果有两头奶牛调换后结果可能更优,就调换他们。
现在有两头奶牛分别在从顶端数位置 i , j i,j i,j 上,满足 i < j i<j i<j(为了防止他们俩中间的牛有意见,还是让 j = i + 1 j=i+1 j=i+1,我在这 define 一下,否则不严谨了 (Upd2020.2.7)),调换他们的条件为: m a x ( W − s [ i ] , W ′ − s [ j ] ) > m a x ( W − s [ j ] , W ′ − w [ i ] + w [ j ] − s [ i ] ) max(W-s[i],W'-s[j])>max(W-s[j],W'-w[i]+w[j]-s[i]) max(W−s[i],W′−s[j])>max(W−s[j],W′−w[i]+w[j]−s[i])
所以……就什么也没看出来。
当 W − s [ i ] > W ′ − s [ j ] , W − s [ j ] > W ′ − w [ i ] + w [ j ] − s [ i ] W − s [ i ] > W − s [ j ] , s [ i ] < s [ j ] W > W ′ − w [ i ] + w [ j ] w [ j ] < 0 , 舍 当 W − s [ i ] > W ′ − s [ j ] , W − s [ j ] ≤ W ′ − w [ i ] + w [ j ] − s [ i ] W − s [ i ] > W ′ − w [ i ] + w [ j ] − s [ i