[CodeForces] CF1978 题解

A. Alice and Books

Link-CF
Link-Luogu

【题目大意】

\(n\) 本书,编号为 \(1\)\(n\),价值为 \(a_1\)\(a_n\)。将这些书分成两堆,你获得每堆编号最大的书的价值。求可以获得的最大的价值。

【解题思路】

无论怎样,编号为 \(n\) 的书不管在那一堆都是编号最大的,所以一定会有它的价值。

那么我们另外一堆中可以获得剩下 \(n-1\) 本书中价值最大的。具体地,\(1\)\(n - 1\) 中最大价值的编号为 \(i\),那么 \(1\)\(i\) 放一堆,\(i + 1\)\(n\) 放一堆,答案为 \(a_i + a_n\),它一定是最优的。


B. New Bakery

Link-CF
Link-Luogu

【题目大意】

一个长度为 \(n\) 的序列,前 \(k\) 项为公差为 \(-1\) 的,首项为 \(b\) 的等差数列。后面的数全是 \(a\)。给定了 \(n\)\(a\)\(b\),求序列所有数的和的最大值。

【解题思路】

在最优解中,显然,前 \(k\) 项的等差数列中,每一项都应该比 \(a\) 大,否则将其换成 \(a\) 会更优。所以我们只需要令 \(k = b - a\),这样,前 \(k\) 项都大于 \(a\),并且等差数列第 \(k + 1\) 小于 \(a\),这样是最优的。

最后等差数列求和公式出来即可。注意 \(k\) 的边界条件。


C. Manhattan Permutations

Link-CF
Link-Luogu

posted @ 2024-11-11 09:50  Eliauk_FP  阅读(22)  评论(0编辑  收藏  举报