E Revenge on My Boss CCPC 2023 Harbin Site 貪心,二分

chdy發表於2024-10-15

傳送門

給出了三個陣列\(\{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\)即可。

相關文章