CF1139C.Edgy Trees

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a tree (a connected undirected graph without cycles) of nn vertices. Each of the n−1n - 1 edges of the tree is colored in either black or red.

You are also given an integer kk. Consider sequences of kk vertices. Let's call a sequence [a1,a2,…,ak][a_1, a_2, \ldots, a_k] good if it satisfies the following criterion:

  • We will walk a path (possibly visiting same edge/vertex multiple times) on the tree, starting from a1a_1 and ending at aka_k.
  • Start at a1a_1, then go to a2a_2 using the shortest path between a1a_1 and a2a_2, then go to a3a_3 in a similar way, and so on, until you travel the shortest path between ak−1a_{k-1} and aka_k.
  • If you walked over at least one black edge during this process, then the sequence is good.

Consider the tree on the picture. If k=3k=3 then the following sequences are good: [1,4,7][1, 4, 7], [5,5,3][5, 5, 3] and [2,3,7][2, 3, 7]. The following sequences are not good: [1,4,6][1, 4, 6], [5,5,5][5, 5, 5], [3,7,3][3, 7, 3].

There are nkn^k sequences of vertices, count how many of them are good. Since this number can be quite large, print it modulo 109+710^9+7.

给你一棵树(一个无环的连通无向图),该树包含 nn 个顶点。树中的 n−1n - 1 条边每条都被染成黑色或红色。

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

  • 我们将在树上走一条路径(允许重复经过同一条边或同一个顶点),起点为 a1a_1,终点为 aka_k。
  • 从 a1a_1 出发,沿 a1a_1 与 a2a_2 之间的最短路径走到 a2a_2;再沿 a2a_2 与 a3a_3 之间的最短路径走到 a3a_3;以此类推,直至沿 ak−1a_{k-1} 与 aka_k 之间的最短路径走到 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 个顶点序列,统计其中有多少个是好的。由于答案可能非常大,请输出其对 109+710^9+7 取模的结果。

输入格式

The first line contains two integers nn and kk (2≤n≤1052 \le n \le 10^5, 2≤k≤1002 \le k \le 100), the size of the tree and the length of the vertex sequence.

Each of the next n−1n - 1 lines contains three integers uiu_i, viv_i and xix_i (1≤ui,vi≤n1 \le u_i, v_i \le n, xi∈0,1x_i \in {0, 1}), where uiu_i and viv_i denote the endpoints of the corresponding edge and xix_i is the color of this edge (00 denotes red edge and 11 denotes black edge).

第一行包含两个整数 nn 和 kk(2≤n≤1052 \le n \le 10^5,2≤k≤1002 \le k \le 100),分别表示树的大小和顶点序列的长度。

接下来的 n−1n - 1 行每行包含三个整数 uiu_i、viv_i 和 xix_i(1≤ui,vi≤n1 \le u_i, v_i \le n,xi∈{0,1}x_i \in \{0, 1\}),其中 uiu_i 和 viv_i 表示对应边的两个端点,xix_i 表示该边的颜色(00 表示红色边,11 表示黑色边)。

输出格式

Print the number of good sequences modulo 109+710^9 + 7.

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

输入输出样例

  • 输入#1

    4 4
    1 2 1
    2 3 1
    3 4 1

    输出#1

    252
  • 输入#2

    4 6
    1 2 0
    1 3 0
    1 4 0

    输出#2

    0
  • 输入#3

    3 5
    1 2 1
    2 3 0

    输出#3

    210

说明/提示

In the first example, all sequences (444^4) of length 44 except the following are good:

  • [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]

In the second example, all edges are red, hence there aren't any good sequences.

在第一个例子中,所有长度为 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]

在第二个例子中,所有边均为红色,因此不存在好序列。

输入解题思路,AI测评打分。不知道怎么写?

首页