#P15935. [TOPC 2021] Garden Park

[TOPC 2021] Garden Park

题目描述

在花园公园里,有 nn 个景点(编号为 11nn)和 n1n-1 条小径(编号为 11n1n-1)连接这些景点。对于每个 i{1,2,,n1}i \in \{1, 2, \dots, n-1\},小径 ii 的两端分别位于景点 aia_ibib_i,且该小径除了端点外不经过任何其他景点。此外,这些小径之间除了端点外没有其他交点。

为了保护花园,游客只能沿着小径(任意方向)行走,并可以在景点内停留。对于任意一对景点 (x,y)(x, y)xyx \neq y),存在一条小径序列 s1,s2,,sks_1, s_2, \dots, s_k 满足以下条件:

  • 景点 xx 是小径 s1s_1 的一个端点。
  • 景点 yy 是小径 sks_k 的一个端点。
  • 对于 1i<k1 \leq i < k,小径 sis_isi+1s_{i+1} 共享一个公共端点。
  • 如果景点 zz 是某对 sis_isi+1s_{i+1}i{1,,k1}i \in \{1, \dots, k-1\})的公共端点,那么 zz 不能是 s1,,sks_1, \dots, s_k 中任何其他小径对的公共端点。

换句话说,游客从 xx 移动到 yy 时,沿着小径 s1,s2,,sks_1, s_2, \dots, s_k 行走,且不会重复经过任何一个景点。这样的序列称为从 xxyy简单路径

公园的管理部门计划在园内举办一场活动。他们在小径上贴上标签。对于小径 tt,其上的标签为整数 (t)\ell(t),游客通过行走经过小径 tt 即可获知 (t)\ell(t)。一条从 xxyy 的简单路径 s1,s2,,sks_1, s_2, \dots, s_k 被称为 严格递增标签路径,如果 (s1)<(s2)<<(sk)\ell(s_1) < \ell(s_2) < \cdots < \ell(s_k)。游客向管理部门报告 mm 条不同的严格递增标签简单路径,即可赢得 mm 张未来参观的免费门票。

你的朋友乔治刚刚参观完公园,并获知了所有小径上的标签。他想和你一起赢得免费门票。请编写一个程序,计算花园公园中严格递增标签简单路径的数量。

输入格式

第一行包含一个整数 nn。第 (i+1)(i+1) 行包含三个整数 ai,bi,cia_i, b_i, c_i。小径 ii 连接景点 aia_ibib_i,且小径 ii 上的标签 (i)\ell(i)cic_i

输出格式

输出花园公园中严格递增标签简单路径的数量。

3
1 2 3
2 3 7
5
5
1 2 2
2 3 2
1 4 5
5 4 5
9

提示

  • 1n2×1051 \leq n \leq 2 \times 10^5
  • 1ain1 \leq a_i \leq n,对于 i{1,2,,n}i \in \{1, 2, \dots, n\}
  • 1bin1 \leq b_i \leq n,对于 i{1,2,,n}i \in \{1, 2, \dots, n\}
  • 0ci1090 \leq c_i \leq 10^9,对于 i{1,2,,n}i \in \{1, 2, \dots, n\}
  • aibia_i \neq b_i,对于 i{1,2,,n}i \in \{1, 2, \dots, n\}

翻译由 DeepSeek V3.2 完成