题目大意
给你两个长度为 n n n的数组 a a a和 b b b,它们共同描述了 n n n个点。给出一个数 x x x,在数组中取 x x x个编号,使得基础得分 2 max i 被 选 中 { b i } + ∑ j 被 选 种 a j 2\max_{i被选中}\{b_i\}+\sum_{j被选种}a_j 2maxi被选中{bi}+∑j被选种aj最大的情况下,最大的最终得分 2 max i 被 选 中 { b i } + ∑ j 被 选 种 a j ⋅ y 2\max_{i被选中}\{b_i\}+\sum_{j被选种}a_j\cdot y 2maxi被选中{bi}+∑j被选种aj⋅y最大是多少,其中 1 ⩽ y ⩽ x 1\leqslant y \leqslant x 1⩽y⩽x且 y y y不重复。
算法
思维题。本题不难,但思维含量较大。
我们先按 b i b_i bi排序。设 c i c_{i} ci表示前 i i i个数排过序的 a a a,可以用插入排序 O ( n 2 ) O(n^2) O(n2)
枚举以
i
i
i为最远的点,则
基
础
得
分
=
∑
j
=
1
x
−
1
c
i
−
1
,
j
+
a
i
+
2
b
i
基础得分 = \sum_{j=1}^{x-1}c_{i-1,j} + a_i + 2b_i
基础得分=j=1∑x−1ci−1,j+ai+2bi
我们这样就可以在
Θ
(
n
)
\Theta(n)
Θ(n)内算出最大的基础得分了。
设 p p p满足以 p p p为最远的点,基础得分最大。则最终得分就是用 c p , 1 ∼ x − 1 c_{p,1\sim x-1} cp,1∼x−1和 a p a_p ap与 1 ∼ m 1\sim m 1∼m对应相乘的最大值 + 2 b p +2b_p +2bp。最优的对应就是大的对应大的,小的对应小的。
基础得分和最终得分都可以在 Θ ( n ) \Theta(n) Θ(n)内算出来,所以时间复杂度为 Θ ( n m ) \Theta(nm) Θ(nm)。
注意事项
- 不开long long见祖宗,全开long long会MLE。
- 此做法由WTC大奆想出来。
- 看不懂可以参考楼上RZC大奆的题解。