P12653 [KOI 2024 Round 2] 分数竞赛

题目背景

试题来源:。中文翻译做了少量本土化修改。 按照[署名—非商业性使用—相同方式共享 4.0 协议国际版](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans)进行授权。

题目描述

KOI 公园由编号从 $1$ 到 $N$ 的 $N$ 个地点组成,地点之间通过 $N-1$ 条道路相连。第 $i$ 条道路连接 $U_i$ 号地点和 $V_i$ 号地点,具有权值 $W_i$($1 \le i \le N-1$)。 KOI 公园中的任意两个地点都可以通过这些道路相互到达,也就是说,这是一棵树结构。 KOI 公园即将举行一场分数竞赛,其规则如下: - 总共有 $N - 1$ 名选手,每人从起点出发,沿着一条简单路径(即不重复经过任何地点)前往除起点以外的一个不同终点。 - 每名选手起始分数为 0。 - 每经过一条道路,选手便会获得该道路的分数(可以是负数)。 - 选手可以在任意时刻将当前分数归零,包括到达终点之后。 最大化某位选手最终得分的一个策略是:**每当当前得分为负时,立刻将其归零**。我们称这种策略为**最优策略**。所有选手都会采用此策略。 对于每一个起点 $i$($1 \le i \le N$),设在 $i$ 为起点时,所有选手在遵循最优策略后最终得分的总和为 $S_i$,所有选手将分数归零的总次数为 $C_i$。 例如,考虑下图所示的 KOI 公园结构,当 $1$ 号地点为起点时: ![](https://cdn.luogu.com.cn/upload/image_hosting/wsiwv8mw.png) - 前往 $2$ 号地点的选手经过 $-1$ 分的道路,到达后归零,最终得分为 0。 - 前往 $3$ 号地点的选手经过 $+2$ 分的道路,最终得分为 2。 - 前往 $4$ 号地点的选手先经过 $-1$ 分到达 $2$ 号,再归零,然后经过 $+2$ 分到达 $4$,最终得分为 2。 - 前往 $5$ 号地点的选手先经过 $+2$ 分到达 $3$ 号,再经过 $-3$ 分到达 $5$,在 $5$ 号归零,最终得分为 0。 - 前往 $6$ 号地点的选手先经过 $+2$ 分到达 $3$ 号,再经过 $-1$ 分到达 $6$,最终得分为 1。 因此,$S_1 = 5$,$C_1 = 3$。 请编写程序,计算每个起点 $i$ 的 $S_i$ 和 $C_i$。

输入格式

第一行输入一个整数 $N$。 接下来的 $N-1$ 行中,第 $i$ 行输入三个整数 $U_i\ V_i\ W_i$,表示第 $i$ 条道路的两端节点及其权值。

输出格式

若只计算 $S_1, \ldots, S_N$: - 第一行输出整数 0。 - 第二行输出 $S_1\ S_2\ \ldots\ S_N$,以空格分隔。 若同时计算 $S_1, \ldots, S_N$ 和 $C_1, \ldots, C_N$: - 第一行输出整数 1。 - 第二行输出 $S_1\ S_2\ \ldots\ S_N$,以空格分隔。 - 第三行输出 $C_1\ C_2\ \ldots\ C_N$,以空格分隔。

说明/提示

**约束条件** - 所有输入值均为整数。 - $2 \le N \le 300\,000$ - $1 \le U_i, V_i \le N \quad (1 \le i \le N - 1)$ - $-10^7 \le W_i \le 10^7 \quad (1 \le i \le N - 1)$ **子任务** 1. (2 分)$N \le 1\,000$ 2. (6 分)$0 \le W_i \le 5$ 3. (20 分)$0 \le W_i \le 5$ 或 $W_i \le -1\,000\,000$ 4. (4 分)$U_i = 1,\ V_i = i+1$ 5. (10 分)$U_i = i,\ V_i = i+1$ 6. (16 分)$U_i = \left\lfloor \frac{i+1}{2} \right\rfloor,\ V_i = i+1$ 7. (18 分)与三条及以上道路直接相连的地点最多有两个 8. (24 分)无额外约束 ~~若仅计算 $S_1, \ldots, S_N$,可获得该子任务一半的分数。详细请参考输出格式说明。 **若计算了 $S_1, \ldots, S_N$ 和 $C_1, \ldots, C_N$,但 $C$ 值不准确,即使 $S$ 正确,也无法得分。**~~ 在洛谷上需要正确输出正确的 $S_1, \ldots, S_N$ 和 $C_1, \ldots, C_N$ 才可以获得分数。 翻译由 ChatGPT-4o 完成