#P14415. [JOISC 2015] 遗产继承 / Inheritance

    ID: 16182 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2015二分并查集JOISC/JOIST(日本)

[JOISC 2015] 遗产继承 / Inheritance

题目描述

IOI 国所有铁路的拥有者、大富豪 JOI 先生已经去世。根据遗嘱,铁路将被分割并继承。

IOI 国有 NN 个城市,以及连接这些城市的 MM 条铁路。城市编号为 1 到 NN,铁路编号为 1 到 MM。第 ii 条铁路连接城市 AiA_i 和城市 BiB_i,为双向线路,每年可产生 CiC_i 日元的收益。由于乘客数量和票价各异,C1,,CMC_1, \dots, C_M 各不相同。可能存在多条铁路连接同一对城市。

遗嘱中规定了铁路分割继承的方法如下:

  • 铁路将由 JOI 先生的 KK 个子女继承。子女按年龄从高到低依次编号为 1 到 KK
  • 每个子女继承若干条铁路(可能为 0 条)。
  • 首先,从 MM 条铁路中,子女 1 选择若干条作为自己的继承部分;接着,从剩余铁路中,子女 2 决定自己的继承部分;依此类推,KK 个子女依次决定继承部分。
  • 任何子女都不能继承已被更年长子女继承的铁路。即,若铁路 ii 已被子女 jj 继承,则任何更年轻的子女 kkk>jk > j)均不能继承该铁路。
  • 任何子女在选择继承部分时,必须确保所选铁路不构成环路。即,若存在一条由铁路 i1,i2,,imi_1, i_2, \dots, i_m(其中 i1,i2,,imi_1, i_2, \dots, i_m 互不相同)组成的路径,使得从某个城市出发,经过这些铁路后能返回原城市,则任何子女均不能独自继承所有这些铁路。
  • 未被任何子女继承的铁路将捐赠给 IOI 国。

每个子女都像其父亲一样贪婪,希望自己的继承部分的年收益总和尽可能大。已证明,对于每个子女,存在唯一一种选择方式,使其继承部分的年收益总和达到最大值。请确定每条铁路由谁继承。

题目

给定 IOI 国铁路的信息和 JOI 先生子女的人数,编写程序求出每条铁路由谁继承。

输入格式

从标准输入读取以下内容:

  • 第一行包含三个整数 N,M,KN, M, K,以空格分隔。这表示 IOI 国有 NN 个城市和 MM 条铁路,JOI 先生有 KK 个子女。
  • 接下来的 MM 行中,第 ii 行(1iM1 \le i \le M)包含三个整数 Ai,Bi,CiA_i, B_i, C_i,以空格分隔。这表示第 ii 条铁路连接城市 AiA_i 和城市 BiB_i(双向),年收益为 CiC_i 日元。

输出格式

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

3 5 2
1 2 3
1 2 1
2 3 4
2 3 6
1 3 2

1
0
2
1
2
3 6 5
1 2 1
1 2 2
2 3 3
2 3 4
3 1 5
3 1 6
4
3
2
1
2
1

提示

样例 1 解释

  • 子女 1 从铁路 1, 2, 3, 4, 5 中选择铁路 1 和 4 进行继承。此时继承铁路的年收益总和为 3+6=93 + 6 = 9 日元,这是最大值。
  • 子女 2 从剩余铁路 2, 3, 5 中选择铁路 3 和 5 进行继承。此时继承铁路的年收益总和为 4+2=64 + 2 = 6 日元,这是最大值。
  • 剩余铁路 2 将捐赠给 IOI 国。

样例 2 解释

继承铁路的数量可能因子女而异。可能存在完全没有继承任何铁路的子女。

数据范围

所有输入数据满足以下条件:

  • 2N10002 \le N \le 1000
  • 1M3000001 \le M \le 300000
  • 1K100001 \le K \le 10000
  • 1AiN1 \le A_i \le N, 1BiN1 \le B_i \le N1iM1 \le i \le M
  • AiBiA_i \ne B_i1iM1 \le i \le M
  • 1Ci10000000001 \le C_i \le 10000000001iM1 \le i \le M
  • CiCjC_i \ne C_j1i<jM1 \le i < j \le M

子任务

子任务 1 [15 分]

  • K10K \le 10

子任务 2 [85 分]

无额外限制。

翻译由 Qwen3-235B 完成