CF1188A1 Add on a Tree

题目描述

注意,这是两个类似问题中的第一个。只有当你同时解决了这两个问题时,才能对本题进行 hack。 给定一棵有 $n$ 个节点的树。初始时,所有边上的数值均为 $0$。每次操作,你可以选择任意两个不同的叶子节点 $u$、$v$,以及任意实数 $x$,然后将 $x$ 加到从 $u$ 到 $v$ 的简单路径上的所有边上。 例如,下图展示了对图进行两次操作的结果:先在从 $7$ 到 $6$ 的路径上加上 $2$,再在从 $4$ 到 $5$ 的路径上加上 $-0.5$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1188A1/4514fbf35a3201a7ca3b335f667bd3e11a688c5b.png) 请判断:对于任意一种边上实数的配置,是否都能通过有限次上述操作实现? 叶子节点是指度为 $1$ 的节点。简单路径是指不包含重复节点的路径。

输入格式

第一行包含一个整数 $n$($2 \le n \le 10^5$),表示节点数。 接下来的 $n-1$ 行,每行包含两个整数 $u$ 和 $v$($1 \le u, v \le n$,$u \neq v$),表示节点 $u$ 和 $v$ 之间有一条边。保证这些边构成一棵树。

输出格式

如果存在某种边上实数的配置无法通过上述操作实现,输出 "NO"。 否则,输出 "YES"。 输出时字母大小写均可。

说明/提示

在第一个样例中,我们可以对唯一的边 $(1, 2)$ 加上任意实数 $x$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1188A1/25d412324353a5cacb63d72803d1f9b15e742633.png) 在第二个样例中,存在一种无法实现的配置:边 $(1, 2)$ 上为 $0$,边 $(2, 3)$ 上为 $1$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1188A1/e16117f5a283e54a35e77dfddddf18a8df81966b.png) 下方为样例 $3$、$4$ 的图示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1188A1/1d0c41f73ee7e0beb3f827a01577bfa07941d15e.png) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1188A1/91469666c4af6f377da3f6104280ec7d6081a3a0.png) 由 ChatGPT 4.1 翻译