DTOJ 2746. 皇后游戏(game)

题意

还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,四年过去了。早已过时的国王游戏如今已被皇后游戏取代,请你来解决类似于国王游戏的另一个问题。

皇后有 n 位大臣,每位大臣的左右手上面分别写上了一个正整数。恰逢劳动节来临,皇后决定为 n 位大臣颁发奖金,其中第 i 位大臣所获得的奖金数目为第 i-1 位大臣所获得奖金数目与前 i 位大臣左手上的数的和的较大值再加上第 i 位大臣右手上的数。

形式化地讲:我们设第 i 位大臣左手上的正整数为 ai,右手上的正整数为 bi 则第 i 位大臣获得的奖金数目为 ci 可以表达为:

\[$$c_i=\begin{cases}a_1+b_1 & i=1\\max \{c_{i-1},\sum^{i}_{j=1}{a_j} \} +b_i & 2 \le i \le n\\\end{cases}\$$]

当然,吝啬的皇后并不希望太多的奖金被发给大臣,所以她想请你来重新安排一下队伍的顺序,使得获得奖金最多的大臣,所获奖金数目尽可能的少。

注意:重新安排队伍并不意味着一定要打乱顺序,我们允许不改变任何一位大臣的位置。

【样例说明 1

按照 123 这样排列队伍,获得最多奖金的大臣获得奖金的数目为 10

按照 132 这样排列队伍,获得最多奖金的大臣获得奖金的数目为 9

按照 213 这样排列队伍,获得最多奖金的大臣获得奖金的数目为 9

按照 231 这样排列队伍,获得最多奖金的大臣获得奖金的数目为 8

按照 312 这样排列队伍,获得最多奖金的大臣获得奖金的数目为 9

按照 321 这样排列队伍,获得最多奖金的大臣获得奖金的数目为 8

当按照 321 这样排列队伍时,三位大臣左右手的数分别为:

(1, 2)(2, 2)(4, 1)

1 位大臣获得的奖金为 1 + 2 = 3

2 位大臣获得的奖金为 max{3, 3} + 2 = 5

3 为大臣获得的奖金为 max{5, 7} + 1 = 8

【数据规模与约定】

所有测试点的数据规模如下:

测试点编号

n的规模

T的规模

约定

1

=1

=1

2

=2

3

=5

=5

4

=9

5

=15

6

=15

7

=16

8

=16

9

=3000

=10

ai=bi

10

=3000

11

=5000

bi=ai+1

12

=5000

13

=10000

14

=10000

15

=20000

16

=20000

17

=30000

题解

对于排序问题考虑构造一种排序方式使得任意交换两个数不会更优。设两个大臣i,ja1...i=x,ci1=yi,j,a_{1...i}=x,c_{i-1}=y,则要使:
max(y+bi+bi+1,x+ai+bi,x+ai+ai+1+bi+1)max(y+bi+1+bi,x+ai+1+bi+1+bi,x+ai+ai+1+bi)max(y+b_i+b_{i+1},x+a_i+b_i,x+a_i+a_{i+1}+b_i+1)\le max(y+b_i+1+b_i,x+a_{i+1}+b_i+1+b_i,x+a_i+a_{i+1}+b_i)
发现第一项是相同的,且完全可以忽略它(如果忽略后不满足不等式,那么交换后还满足原不等式)。
于是化简得:min(ai,bj)min(bi,aj)min(a_i,b_j)\le min(b_i,a_j)
直接按照这个排序会有问题,因为这不满足传递性,考虑将它划分成若干个可传递的范围:按照a,ba,b的大小先分一类,a<ba<b的一定在前,a>ba>b的一定在后,然后对于两边分别按照aa升序、bb降序排序即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章