CF1139C.Edgy Trees

传统题 时间 2000 ms 内存 256 MiB 8 尝试 18 已通过 7 标签

Edgy Trees

题目描述

给定一棵有 nn 个顶点的树(一个无环连通无向图)。树的 n1n-1 条边中,每条边都被染成黑色或红色。

你还得到一个整数 kk。考虑长度为 kk 的顶点序列。我们称一个序列 [a1,a2,,ak][a_1, a_2, \ldots, a_k] 是好的,如果它满足以下条件:

  • 我们将在树上行走一条路径(可能多次经过同一条边或顶点),从 a1a_1 出发,最终到达 aka_k
  • a1a_1 出发,走到 a2a_2,采用 a1a_1a2a_2 之间的最短路径;然后以同样的方式走到 a3a_3,依此类推,直到你走完 ak1a_{k-1}aka_k 之间的最短路径。
  • 如果在这个过程中至少经过了一条黑色边,则该序列是好的。

考虑上图中的树。如果 k=3k=3,则以下序列是好的:[1,4,7][1, 4, 7][5,5,3][5, 5, 3][2,3,7][2, 3, 7]。以下序列不是好的:[1,4,6][1, 4, 6][5,5,5][5, 5, 5][3,7,3][3, 7, 3]

共有 nkn^k 个长度为 kk 的顶点序列,请你计算其中有多少个是好的。由于答案可能很大,请输出答案对 109+710^9+7 取模后的结果。

输入格式

第一行包含两个整数 nnkk2n1052 \le n \le 10^52k1002 \le k \le 100),分别表示树的大小和顶点序列的长度。

接下来的 n1n-1 行,每行包含三个整数 uiu_iviv_ixix_i1ui,vin1 \le u_i, v_i \le nxi{0,1}x_i \in \{0, 1\}),表示一条边的两个端点和该边的颜色(00 表示红色,11 表示黑色)。

输出格式

输出好的序列数量,对 109+710^9+7 取模。

说明/提示

在第一个样例中,所有长度为 44 的序列(共 444^4 个)中,除了以下序列之外,其他都是好的:

  • [1,1,1,1][1, 1, 1, 1]
  • [2,2,2,2][2, 2, 2, 2]
  • [3,3,3,3][3, 3, 3, 3]
  • [4,4,4,4][4, 4, 4, 4]

在第二个样例中,所有边都是红色,因此没有好的序列。

由 ChatGPT 4.1 翻译

样例

4 4
1 2 1
2 3 1
3 4 1
252
4 6
1 2 0
1 3 0
1 4 0
0
3 5
1 2 1
2 3 0
210

在线编程 IDE

建议全屏模式获得最佳体验