QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 256 MB مجموع النقاط: 100

#1213. 继承

الإحصائيات

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$。
  • 每个孩子继承 $M$ 条铁路中的若干条(也可以是 $0$ 条)。
  • 首先,孩子 $1$ 从 $M$ 条铁路中选择若干条作为自己的继承份额。接着,孩子 $2$ 从剩下的铁路中决定自己的继承份额。以此类推, $K$ 个孩子按顺序决定自己的继承份额。
  • 任何孩子都不能继承已经被他人继承的铁路。也就是说,如果铁路 $i$ 包含在孩子 $j$ 的继承份额中,那么年龄较小的孩子 $k$ ($k > j$) 就不能将铁路 $i$ 包含在自己的继承份额中。
  • 任何孩子在决定自己的继承份额时,必须确保继承的铁路不包含环。也就是说,如果通过利用铁路 $i_1, i_2, \dots, i_m$($i_1, i_2, \dots, i_m$ 互不相同)各一次,可以从某个城市出发并回到同一个城市,那么任何孩子都不能独自继承所有这些铁路 $i_1, i_2, \dots, i_m$。
  • 无人继承的剩余铁路将捐赠给 IOI 国。

由于每个孩子都像父亲一样贪婪,他们会选择自己的继承份额,使得所继承铁路的年收益总额尽可能大。可以证明,对于每个孩子,使年收益总额最大的继承方案是唯一的。请确定每条铁路分别由谁继承。

题目描述

给定 IOI 国的铁路信息和 JOI 先生的孩子人数,请编写一个程序,确定每条铁路分别由谁继承。

输入格式

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

  • 第 $1$ 行包含 $3$ 个整数 $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$。

数据范围

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

  • $2 \le N \le 1\,000$
  • $1 \le M \le 300\,000$
  • $1 \le K \le 10\,000$
  • $1 \le A_i \le N, 1 \le B_i \le N$ ($1 \le i \le M$)
  • $A_i \neq B_i$ ($1 \le i \le M$)
  • $1 \le C_i \le 1\,000\,000\,000$ ($1 \le i \le M$)
  • $C_i \neq C_j$ ($1 \le i < j \le M$)

子任务

子任务 1 [15 分]

  • 满足 $K \le 10$。

子任务 2 [85 分]

  • 没有额外限制。

样例

样例 1

输入:

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

输出:

1
0
2
1
2

说明: 孩子 $1$ 从铁路 $1, 2, 3, 4, 5$ 中选择铁路 $1, 4$ 继承。此时继承铁路的年收益总额为 $3 + 6 = 9$ 日元,这是最大值。 孩子 $2$ 从剩下的铁路 $2, 3, 5$ 中选择铁路 $3, 5$ 继承。此时继承铁路的年收益总额为 $4 + 2 = 6$ 日元,这是最大值。 * 剩下的铁路 $2$ 被捐赠给 IOI 国。

样例 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

说明: 每个孩子继承的铁路数量可能不同。也可能存在没有继承任何铁路的孩子。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.