CF1139C.Edgy Trees
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a tree (a connected undirected graph without cycles) of n vertices. Each of the n−1 edges of the tree is colored in either black or red.
You are also given an integer k. Consider sequences of k vertices. Let's call a sequence [a1,a2,…,ak] good if it satisfies the following criterion:
- We will walk a path (possibly visiting same edge/vertex multiple times) on the tree, starting from a1 and ending at ak.
- Start at a1, then go to a2 using the shortest path between a1 and a2, then go to a3 in a similar way, and so on, until you travel the shortest path between ak−1 and ak.
- 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=3 then the following sequences are good: [1,4,7], [5,5,3] and [2,3,7]. The following sequences are not good: [1,4,6], [5,5,5], [3,7,3].
There are nk sequences of vertices, count how many of them are good. Since this number can be quite large, print it modulo 109+7.
给你一棵树(一个无环的连通无向图),该树包含 n 个顶点。树中的 n−1 条边每条都被染成黑色或红色。
你还给定一个整数 k。考虑所有长度为 k 的顶点序列。我们称一个序列 [a1,a2,…,ak] 是好的,如果它满足以下条件:
- 我们将在树上走一条路径(允许重复经过同一条边或同一个顶点),起点为 a1,终点为 ak。
- 从 a1 出发,沿 a1 与 a2 之间的最短路径走到 a2;再沿 a2 与 a3 之间的最短路径走到 a3;以此类推,直至沿 ak−1 与 ak 之间的最短路径走到 ak。
- 若在上述整个行走过程中至少经过了一条黑边,则该序列为好的。

考虑图中所示的树。若 k=3,则以下序列是好的:[1,4,7]、[5,5,3] 和 [2,3,7];而以下序列不是好的:[1,4,6]、[5,5,5]、[3,7,3]。
总共有 nk 个顶点序列,统计其中有多少个是好的。由于答案可能非常大,请输出其对 109+7 取模的结果。
输入格式
The first line contains two integers n and k (2≤n≤105, 2≤k≤100), the size of the tree and the length of the vertex sequence.
Each of the next n−1 lines contains three integers ui, vi and xi (1≤ui,vi≤n, xi∈0,1), where ui and vi denote the endpoints of the corresponding edge and xi is the color of this edge (0 denotes red edge and 1 denotes black edge).
第一行包含两个整数 n 和 k(2≤n≤105,2≤k≤100),分别表示树的大小和顶点序列的长度。
接下来的 n−1 行每行包含三个整数 ui、vi 和 xi(1≤ui,vi≤n,xi∈{0,1}),其中 ui 和 vi 表示对应边的两个端点,xi 表示该边的颜色(0 表示红色边,1 表示黑色边)。
输出格式
Print the number of good sequences modulo 109+7.
输出好序列的数量对 109+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 (44) of length 4 except the following are good:
- [1,1,1,1]
- [2,2,2,2]
- [3,3,3,3]
- [4,4,4,4]
In the second example, all edges are red, hence there aren't any good sequences.
在第一个例子中,所有长度为 4 的序列(共 44 个)中,除了以下序列外,其余均为好序列:
- [1,1,1,1]
- [2,2,2,2]
- [3,3,3,3]
- [4,4,4,4]
在第二个例子中,所有边均为红色,因此不存在好序列。
输入解题思路,AI测评打分。不知道怎么写?