题目链接:https://www.luogu.org/problemnew/show/P2123
题目大意:
给定a数组和b数组,要求最小化c数组中的最大值
题解:
考虑微扰法,推一波式子先
设$x=\sum_{q=1}^{i-1}a[q]$,$y=c[i-1]$,与i相邻在i之后的大臣的编号为j
发现c数组是递增的,于是$max(c_i,c_j)=c_j$
$c_j=max(max(y,x+a_i)+b_i,x+a_i+a_j)+b_j$
$max(y+b_i+b_j,x+a_i+b_i+b_j,x+a_i+a_j+b_j)$
那么考虑交换i,j,同理交换后的较大值为
$max(y+b_i+b_j,x+a_j+b_i+b_j,x+a_j+a_i+b_i)$
我们假设交换之前是更优的,那么$max(y+b_i+b_j,x+a_i+b_i+b_j,x+a_i+a_j+b_j)<=max(y+b_i+b_j,x+a_j+b_i+b_j,x+a_j+a_i+b_i)$
发现有一部分是一样的那么上述结论成立的充分条件是
$max(x+a_i+b_i+b_j,x+a_i+a_j+b_j)<=max(x+a_j+b_i+b_j,x+a_j+a_i+b_i)$
化简一下得到
$max(b_i,a_j)-a_j-b_i<=max(b_j,a_i)-a_i-b_j$
$-min(b_i,a_j)<=-min(b_j,a_i)$
$min(b_i,a_j)>=min(b_j,a_i)$