傳送門
給出了三個陣列\(\{a_i\},\{b_i\},\{c_i\}\)要求給出一個排列\(p\)最小化:任選一個位置\(m\),最大化貢獻\(S=(\sum_{i=1}^ma_{p_i}+\sum_{i=m}^nb_{p_i})c_{p_m}\)。
標準的最小的最大提示我們考慮二分。
這裡直接二分答案\(Mid\)。那麼就考慮是否存在一個排列使得對於任意\(m=i\)都有\(S<=Mid\)
設\(d_i=a_i-b_i,B=\sum_{i=1}^nb_i\)
\(S=(\sum_{i=1}^md_{p_i}+B+b_{p_m})c_{p_m}\le Mid\)
\(\sum_{i=1}^m d_{p_i}\le Mid/c_{p_m}-B-b_{p_m}\)
右邊只跟單點處的值有關,左邊和排列有關。設\(lim_i=Mid/c_i-B-b_i\)
由此我們發現現將\(d_i\le 0\)的按照\(lim_i\)從大到小排序。
對於\(d_i>0\)的按照\(lim_i\)從小到大排序。由此\(check\)即可。