CF1156D 0-1-Tree

题目描述

给定一棵包含 $n$ 个顶点和 $n-1$ 条边的树(无向、连通、无环图)。每条边上都写有一个数字,这个数字要么是 $0$(称为 $0$ 边),要么是 $1$(称为 $1$ 边)。 我们称有序顶点对 $(x, y)$($x \ne y$)是合法的,如果在从 $x$ 到 $y$ 的简单路径上,**在经过 $1$ 边之后,路径上不会再经过 $0$ 边**。你的任务是计算树中合法的有序顶点对的数量。

输入格式

第一行包含一个整数 $n$($2 \le n \le 200000$),表示树的顶点数。 接下来 $n-1$ 行,每行包含三个整数 $x_i$、$y_i$ 和 $c_i$($1 \le x_i, y_i \le n$,$0 \le c_i \le 1$,$x_i \ne y_i$),表示一条连接顶点 $x_i$ 和 $y_i$ 的边,以及这条边上写的数字。 保证给定的边构成一棵树。

输出格式

输出一个整数,表示合法的有序顶点对的数量。

说明/提示

下图对应于第一个样例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1156D/638afcedfa6d4eecb5e63ed4a099a832b54e2fbc.png) 由 ChatGPT 4.1 翻译