logo AlgoBeat OnlineJudge
登录 注册

#214364. [集训队互测 2025] 集你太美

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

人面不知何处去,桃花依旧笑春风。


给定一张 个结点的无向完全图 ,边 带非负整数权 ,保证

同时,每个结点有一个非负整数变量

定义对一个点 进行一次收集操作为,将 的值加上 ,并将 的值减去 。称一次对点 的收集操作合法,当且仅当操作前

在图 上称一组点权收集-free,当且仅当以这组点权为初始状态,存在一种方式,能够进行无限次合法的收集操作。

你有两种任务。第一种,构造一组点权 ,使得 收集-free,且最小化 ;第二种,给定一组点权 ,你需要判断 是否 收集-free。

输入格式

第一行一个正整数 ,表示你的任务类型。

第二行一个正整数 和一个非负整数 ,表示 的结点数和边权非 0 的边数。

接下来的 行,每行 3 个正整数 ,表示在 间的边边权为

,接下来有一行 个非负整数 ,代表你需要判断是否 收集-free 的一组点权。

输出格式

,输出一行 个非负整数 ,代表你构造的点权。你应当保证

,输出一行 YES 或 NO,代表 是否 收集-free。

样例

样例输入 1

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

样例输出 1

2 2 0 1 1

样例输入 2

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

样例输出 2

YES

数据范围与提示

样例解释

当初始点权与样例输出 1 中构造的一致时,可以发现依次操作 号点后,所有点的点权与初始情况一致,且这些操作均合法,故可以进行无限次合法的收集操作。

容易注意到,样例输入 2 给出的点权为样例输出 1 中构造的点权 ,故显然合法。

提示

在下发文件中含有 checker.exe(linux 格式下为 checker),你可以使用它来验证你的输出是否正确。具体的使用方式为 checker collect.in collect.out collect.out,其中 collect.incollect.out 为与 checker.exe 在相同目录下的输入输出文件。

返回值 信息
0 输出正确
1 你构造的方案中 比正确的更小
2 你构造的方案中 比正确的更大
3 你构造的方案不是 收集-free 的
4 你输出了 YES 和 NO 以外的字符串
5 你对于是否 收集-free 的判断错误

限制与约定

对于所有数据, 互不相同,

注意在某些数据中,只考虑边权非 0 的边的情况下,图可能不连通。

Subtask 编号 的上界 的上界 特殊性质 分值
1 无特殊性质
2 ^
3
4 ,非 边构成一棵树
5 ^
6 ^
7 无特殊性质