#P9824. [ICPC 2020 Shanghai R] Fountains

    ID: 9188 远端评测题 6000ms 1024MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>动态规划,dp2020上海O2优化ICPC

[ICPC 2020 Shanghai R] Fountains

Description

假设你和你的队友 Mixsx 将参加 Namomo 训练营。Namomo 训练营将持续 nn 天。我们将第 ii 天命名为第 ii 天(1in1 \le i \le n)。第 ii 天的费用为 sis_i

不幸的是,Namomo 训练营的日程与 Mixsx 的期末考试冲突。Mixsx 在从第 LL 天到第 RR 天的每一天都有期末考试。他的大学尚未宣布 LLRR 的确切值,因此我们假设每对整数 LLRR 满足 1LRn1 \le L \le R \le n 的情况将以概率 1/(n(n+1)/2)1/(n(n+1)/2) 被选择。他决定参加所有考试,因此将从第 LL 天到第 RR 天缺席 Namomo 训练营。在这种情况下,他的损失将是 i=LRsi\sum_{i=L}^R s_i

作为 Mixsx 的队友,你希望 Mixsx 放弃他的期末考试并回到 Namomo 训练营。在 LLRR 公布之前,你可以准备 kk 个计划。在第 ii 个计划中(1ik1 \le i \le k),你每天从第 lil_i 天到第 rir_i 天关闭他的大学的电源。你可以选择 lil_irir_i 的值,只要它们是满足 1lirin1 \le l_i \le r_i \le n 的两个整数。

一旦 LLRR 被宣布,你可以选择一个计划 xx1xk1 \le x \le k),使得 LlxrxRL \le l_x \le r_x \le R。然后 Mixsx 将在从第 lxl_x 天到第 rxr_x 天的每一天回到 Namomo 训练营。在这种情况下,他的损失变为 i=LRsii=lxrxsi\sum_{i=L}^R s_i - \sum_{i=l_x}^{r_x} s_i。你将选择一个计划以最小化 Mixsx 的损失。如果没有计划 xx 满足 LlxrxRL \le l_x \le r_x \le R,Mixsx 将正常参加他的期末考试,他的损失是 i=LRsi\sum_{i=L}^R s_i

请计算如果你选择 kk 个计划最优地,Mixsx 的最小可能期望损失 anskans_k。输出每个从 11n(n+1)/2n(n+1)/2kkanskn(n+1)/2ans_k \cdot n(n+1)/2

形式上,给定一个 nn 个数字 sis_i 的列表(1in1 \leq i \leq n),定义损失函数 C(L,R)=i=LRsiC(L, R) = \sum_{i=L}^R s_i。给定一个整数 kk1kn(n+1)/21 \leq k \leq n(n+1)/2),你应该选择 2k2k 个整数 l1,,lk,r1,,rkl_1, \ldots, l_k, r_1, \ldots, r_k 满足对于所有 1ik1 \leq i \leq k1lirin1 \le l_i \le r_i \le n,使得

$$\sum_{1 \leq L \leq R \leq n} \left[C(L, R) - \max_{1 \le i \le k, L \leq l_i \leq r_i \leq R} C(l_i, r_i) \right]$$

被最小化。(如果没有 ii 满足 1ik1 \le i \le kLliriRL \leq l_i \leq r_i \leq R,则 $\max_{1 \le i \le k, L \leq l_i \leq r_i \leq R} C(l_i, r_i)$ 定义为 00。)输出每个整数 kk[1,n(n+1)/2][1, n(n+1)/2] 中的最小化值。

Input Format

第一行包含一个整数 n (1n9)n~(1 \leq n \leq 9)。第二行包含 nn 个用空格分隔的整数 si (1si109)s_i~(1 \leq s_i \leq 10^9)

Output Format

输出包含 n(n+1)/2n(n+1)/2 个整数,每个整数占一行,表示当 k=1,,n(n+1)/2k = 1, \ldots, n(n+1)/2 时的期望值乘以 n(n+1)/2n(n+1)/2。可以证明结果总是整数。

1
1
0
2
13 24
26
13
0
3
6 4 7
33
21
12
8
4
0

Hint

对于第一个测试用例,我们只需要考虑 k=1k = 1 的情况。我们只能选择 l1=r1=1l_1 = r_1 = 1。然后期望损失是 C(1,1)C(1,1)=0C(1, 1) - C(1, 1) = 0,结果是 0×1×(2)/2=00 \times 1 \times (2) / 2 = 0

对于第三个测试用例,考虑 k=3k = 3 的情况。我们选择 l1=r1=1l_1 = r_1 = 1l2=r2=3l_2 = r_2 = 3l3=1,r3=3l_3 = 1, r_3 = 3。期望损失是 22。结果是 2×6=122 \times 6 = 12

题面翻译由 ChatGPT-4o 提供。