P14252 [集训队互测 2025] 集你太美
题目背景
人面不知何处去,桃花依旧笑春风。
题目描述
给定一张 $ n $ 个结点的无向完全图 $ G $,边 $ (i, j) $ 带非负整数权 $ v_{i,j} $,保证 $ v_{i,i} = 0 $,$ v_{i,j} = v_{j,i} $。
同时,每个结点有一个非负整数变量 $ w_i $。
定义对一个点 $ i $ 进行一次**收集操作**为,将 $ w_i $ 的值加上 $ \sum_j v_{i,j} $,并将 $ w_j $ 的值减去 $ v_{i,j} $。称一次对点 $ i $ 的收集操作**合法**,当且仅当操作前 $ w_j \ge v_{i,j} $。
在图 $ G $ 上称一组点权**收集-free**,当且仅当以这组点权为初始状态,存在一种方式,能够进行**无限次**合法的收集操作。
你有**两种**任务。第一种,**构造**一组点权 $ w'_i $,使得 $ w'_i $ 收集-free,且**最小化** $ \sum_i w'_i $;第二种,给定一组点权 $ w'_i $,你需要**判断** $ w'_i $ 是否 收集-free。
输入格式
第一行一个正整数 $ o $,表示你的任务类型。
第二行一个正整数 $ n $ 和一个非负整数 $ m $,表示 $ G $ 的结点数和边权非 0 的边数。
接下来的 $ m $ 行,每行 3 个正整数 $ i, j, v $,表示在 $ i $ 和 $ j $ 间的边边权为 $ v $。
若 $ o = 2 $,接下来有一行 $ n $ 个非负整数 $ w'_i $,代表你需要判断是否 收集-free 的一组点权。
输出格式
若 $ o = 1 $,输出一行 $ n $ 个非负整数 $ w'_i $,代表你构造的点权。你应当保证 $ 0 \le w'_i \le 10^{18} $。
若 $ o = 2 $,输出一行 YES 或 NO,代表 $ w'_i $ 是否 收集-free。
说明/提示
### 样例解释
当初始点权与样例输出 1 中构造的一致时,可以发现依次操作 $ 3, 5, 4, 2, 3, 4, 1, 5, 2, 1 $ 号点后,所有点的点权与初始情况一致,且这些操作均合法,故可以进行无限次合法的收集操作。
容易注意到,样例输入 2 给出的点权为样例输出 1 中构造的点权 $+1$,故显然合法。
### 提示
在下发文件中含有 `checker.exe`(linux 格式下为 `checker`),你可以使用它来验证你的输出是否正确。具体的使用方式为 `checker collect.in collect.out collect.out`,其中 `collect.in` 和 `collect.out` 为与 `checker.exe` 在相同目录下的输入输出文件。
| 返回值 | 信息 |
|:------:|:----:|
| 0 | 输出正确 |
| 1 | 你构造的方案中 $ \sum w'_i $ 比正确的更小 |
| 2 | 你构造的方案中 $ \sum w'_i $ 比正确的更大 |
| 3 | 你构造的方案不是 收集-free 的 |
| 4 | 你输出了 YES 和 NO 以外的字符串 |
| 5 | 你对于是否 收集-free 的判断错误 |
### 限制与约定
对于所有数据,$ o \in \{1, 2\} $,$ 1 \le n \le 3 \times 10^5 $,$ 0 \le m \le \min\left(10^6, \frac{1}{2}n(n-1)\right) $,$ 1 \le i < j \le n $,$ (i, j) $ 互不相同,$ 1 \le v \le 10^9 $,$ 0 \le w'_i \le 10^{18} $。
注意在某些数据中,只考虑边权非 0 的边的情况下,图可能不连通。
| Subtask 编号 | $ n $ 的上界 | $ m $ 的上界 | 特殊性质 | 分值 |
|:------------:|:-------------:|:-------------:|:--------:|:----:|
| 1 | $10$ | $20$ | 无特殊性质 | $10$ |
| 2 | $20$ | $100$ | ^ | $10$ |
| 3 | $300$ | $2000$ | ^ | $10$ |
| 4 | $3\times 10^5$ | $ n - 1 $ | $ o = 1 $,非 $0$ 边构成一棵树 | $10$ |
| 5 | ^ | $\min\left(10^6, \frac{1}{2}n(n-1)\right)$ | $ o = 1 $ | $30$ |
| 6 | ^ | ^ | $ o = 2 $ | $20$ |
| 7 | ^ | ^ | 无特殊性质 | $10$ |