luogu#P16442. [XJTUPC 2026] 机房分配
[XJTUPC 2026] 机房分配
题目描述
为了降低程序设计竞赛中的作弊风险,学校需要将 名参赛同学分配到 个机房中参加比赛。
已知部分同学之间彼此较为熟悉。我们用一张带权无向图 来描述这些关系:
- 每个点表示一名同学;
- 每条边表示两名同学之间存在一定关系;
- 边权为正整数,表示这两名同学的关系程度,权值越大,说明两人越熟悉;
- 图 为无自环、无重边的简单图。
若同一机房内同学之间的总关系程度过高,则会增加监考压力。
对于某个机房,所有两端点均被分配到该机房的边的权值和,称为该机房的风险值。
设整张图所有边权之和为 , 其中 表示边 的权值。
学校规定,所有机房的风险值之和不能超过 。
现在需要你判断,是否存在一种分配方案,使得:
- 每名同学恰好被分配到一个机房;
- 所有机房的风险值之和不超过 。
若存在,请输出一种满足要求的分配方案。如果存在多种分配方案,输出任意一种即可。
请注意:允许某一个机房内没有分配任何同学;不保证图 连通。
输入格式
输入的第一行,包含三个整数 和 ($1 \le k \le n \le 5\times 10^5, 0 \le m \le 5\times 10^5$),用一个空格分隔,分别表示同学人数、关系条数以及机房数量。
接下来 行,每行包含三个整数 和 (),用一个空格分隔,表示第 名同学与第 名同学之间存在一条权值为 的无向边。
保证输入图中不存在重边。
输出格式
如果不存在满足要求的分配方案,输出一行,仅包含一个字符串 。
否则输出两行,其中:
- 第一行包含一个字符串 ;
- 第二行包含 个整数 (),用一个空格分隔,其中 表示第 名同学被分配到第 个机房。
如果存在多种分配方案,输出任意一种即可。
4 4 2
1 2 1
2 3 1
3 4 1
4 1 1
Yes
1 2 1 2