[luogu P2123] 皇后游戏 解题报告(贪心)

题目链接: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)$

猜你喜欢

转载自www.cnblogs.com/xxzh/p/9696748.html
今日推荐