#P17474. [ICPC 2018 Jiaozuo R] Distance

    ID: 19941 远端评测题 6000ms 512MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>动态规划 DP贪心2018前缀和ICPC

[ICPC 2018 Jiaozuo R] Distance

题目描述

在一条水平直线上有 nn 个点,从左至右依次标号为 11 到 nn。

第 ii 个点与第 (i+1)(i + 1) 个点之间的距离为 aia_i。

对于每个从 11 到 nn 的整数 kk,你需要恰好选择 kk 个不同的给定点,使得所有被选中点对之间的距离之和最大。

输入格式

输入包含多组测试数据,第一行包含一个正整数 TT,表示测试数据组数,最多可达 10001000。

对于每组测试数据,第一行包含一个整数 nn,表示点的数量,满足 2≤n≤1052 \leq n \leq 10^5。

第二行包含 (n−1)(n - 1) 个正整数 a1,a2,⋯ ,an−1a_1, a_2, \cdots, a_{n - 1},满足 1≤ai≤1041 \leq a_i \leq 10^4。

我们保证所有测试数据中 nn 的总和不超过 10610^6。

输出格式

对于每组测试数据,输出一行包含 nn 个整数,其中第 ii 个整数表示当 k=ik = i 时的最大距离之和。你应在相邻两个整数之间恰好输出一个空格,并避免该行出现任何末尾空格。

1
5
2 3 1 4
0 10 20 34 48

提示

下图描述了该样例测试数据。

:::align{center} :::

对于 k=2k = 2,唯一的最优选择应选取最左侧与最右侧的点;而对于 k=3k = 3,一种可能的最优选择可额外包含中间的任意一点。

翻译由 DeepSeek V4 Pro 完成