P14415 [JOISC 2015] 遗产继承 / Inheritance

题目描述

IOI 国所有铁路的拥有者、大富豪 JOI 先生已经去世。根据遗嘱,铁路将被分割并继承。 IOI 国有 $N$ 个城市,以及连接这些城市的 $M$ 条铁路。城市编号为 1 到 $N$,铁路编号为 1 到 $M$。第 $i$ 条铁路连接城市 $A_i$ 和城市 $B_i$,为双向线路,每年可产生 $C_i$ 日元的收益。由于乘客数量和票价各异,$C_1, \dots, C_M$ 各不相同。可能存在多条铁路连接同一对城市。 遗嘱中规定了铁路分割继承的方法如下: - 铁路将由 JOI 先生的 $K$ 个子女继承。子女按年龄从高到低依次编号为 1 到 $K$。 - 每个子女继承若干条铁路(可能为 0 条)。 - 首先,从 $M$ 条铁路中,子女 1 选择若干条作为自己的继承部分;接着,从剩余铁路中,子女 2 决定自己的继承部分;依此类推,$K$ 个子女依次决定继承部分。 - 任何子女都不能继承已被更年长子女继承的铁路。即,若铁路 $i$ 已被子女 $j$ 继承,则任何更年轻的子女 $k$($k > j$)均不能继承该铁路。 - 任何子女在选择继承部分时,必须确保所选铁路不构成环路。即,若存在一条由铁路 $i_1, i_2, \dots, i_m$(其中 $i_1, i_2, \dots, i_m$ 互不相同)组成的路径,使得从某个城市出发,经过这些铁路后能返回原城市,则任何子女均不能独自继承所有这些铁路。 - 未被任何子女继承的铁路将捐赠给 IOI 国。 每个子女都像其父亲一样贪婪,希望自己的继承部分的年收益总和尽可能大。已证明,对于每个子女,存在唯一一种选择方式,使其继承部分的年收益总和达到最大值。请确定每条铁路由谁继承。 ### 题目 给定 IOI 国铁路的信息和 JOI 先生子女的人数,编写程序求出每条铁路由谁继承。

输入格式

从标准输入读取以下内容: - 第一行包含三个整数 $N, M, K$,以空格分隔。这表示 IOI 国有 $N$ 个城市和 $M$ 条铁路,JOI 先生有 $K$ 个子女。 - 接下来的 $M$ 行中,第 $i$ 行($1 \le i \le M$)包含三个整数 $A_i, B_i, C_i$,以空格分隔。这表示第 $i$ 条铁路连接城市 $A_i$ 和城市 $B_i$(双向),年收益为 $C_i$ 日元。

输出格式

输出共 $M$ 行。第 $i$ 行($1 \le i \le M$)输出继承第 $i$ 条铁路的子女编号。若该铁路被捐赠给 IOI 国,则输出 0。

说明/提示

### 样例 1 解释 - **子女 1** 从铁路 1, 2, 3, 4, 5 中选择铁路 1 和 4 进行继承。此时继承铁路的年收益总和为 $3 + 6 = 9$ 日元,这是最大值。 - **子女 2** 从剩余铁路 2, 3, 5 中选择铁路 3 和 5 进行继承。此时继承铁路的年收益总和为 $4 + 2 = 6$ 日元,这是最大值。 - 剩余铁路 2 将捐赠给 IOI 国。 ### 样例 2 解释 继承铁路的数量可能因子女而异。可能存在完全没有继承任何铁路的子女。 ### 数据范围 所有输入数据满足以下条件: - $2 \le N \le 1000$ - $1 \le M \le 300000$ - $1 \le K \le 10000$ - $1 \le A_i \le N$, $1 \le B_i \le N$($1 \le i \le M$) - $A_i \ne B_i$($1 \le i \le M$) - $1 \le C_i \le 1000000000$($1 \le i \le M$) - $C_i \ne C_j$($1 \le i < j \le M$) ### 子任务 **子任务 1 [15 分]** - $K \le 10$ **子任务 2 [85 分]** 无额外限制。 翻译由 Qwen3-235B 完成