CF1097G.Vladislav and a Great Legend

NOI/NOI+/CTSC

通过率:0%

时间限制:3.00s

内存限制:512MB

AC君温馨提醒

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

题目描述

A great legend used to be here, but some troll hacked Codeforces and erased it. Too bad for us, but in the troll society he earned a title of an ultimate-greatest-over troll. At least for them, it's something good. And maybe a formal statement will be even better for us?

You are given a tree TT with nn vertices numbered from 11 to nn. For every non-empty subset XX of vertices of TT, let f(X)f(X) be the minimum number of edges in the smallest connected subtree of TT which contains every vertex from XX.

You're also given an integer kk. You need to compute the sum of (f(X))k(f(X))^k among all non-empty subsets of vertices, that is:

sumlimits_Xsubseteq1,2,:dots:,n,,Xneqvarnothing(f(X))k.\\sum\\limits\_{X \\subseteq \\{1, 2,\\: \\dots \\:, n\\},\\, X \\neq \\varnothing} (f(X))^k.

As the result might be very large, output it modulo 109+710^9 + 7.

一个伟大的传说曾在此处,但某个喷子黑进了 Codeforces 并将其删除。对我们而言这很遗憾,但在喷子社会中,他因此获得了“终极至高无上喷子”的称号。至少对他们来说,这是件好事。或许一个形式化的题目描述对我们而言会更佳?

给定一棵含 nn 个顶点的树 TT,顶点编号为 11 到 nn。对 TT 的每个非空顶点子集 XX,令 f(X)f(X) 表示包含 XX 中所有顶点的最小连通子树所含边数的最小值。

同时给定一个整数 kk。你需要计算所有非空顶点子集 XX 对应的 (f(X))k(f(X))^k 之和,即:

∑X⊆{1,2, … ,n}, X≠∅(f(X))k.\sum\limits_{X \subseteq \{1, 2,\: \dots \:, n\},\, X \neq \varnothing} (f(X))^k.

由于结果可能非常大,请将答案对 109+710^9 + 7 取模后输出。

输入格式

The first line contains two integers nn and kk (2≤n≤1052 \leq n \leq 10^5, 1≤k≤2001 \leq k \leq 200) — the size of the tree and the exponent in the sum above.

Each of the following n−1n - 1 lines contains two integers aia_i and bib_i (1≤ai,bi≤n1 \leq a_i,b_i \leq n) — the indices of the vertices connected by the corresponding edge.

It is guaranteed, that the edges form a tree.

第一行包含两个整数 nn 和 kk(2≤n≤1052 \leq n \leq 10^5,1≤k≤2001 \leq k \leq 200)——分别为树的大小以及上述求和式中的指数。

接下来的 n−1n - 1 行每行包含两个整数 aia_i 和 bib_i(1≤ai,bi≤n1 \leq a_i, b_i \leq n)——表示由对应边连接的两个顶点的编号。

保证这些边构成一棵树。

输出格式

Print a single integer — the requested sum modulo 109+710^9 + 7.

输出一个整数——所求的和对 109+710^9 + 7 取模的结果。

输入输出样例

  • 输入#1

    4 1
    1 2
    2 3
    2 4

    输出#1

    21
  • 输入#2

    4 2
    1 2
    2 3
    2 4

    输出#2

    45
  • 输入#3

    5 3
    1 2
    2 3
    3 4
    4 5

    输出#3

    780

说明/提示

In the first two examples, the values of ff are as follows:

f(1)=0f({1}) = 0

f(2)=0f({2}) = 0

f(1,2)=1f({1, 2}) = 1

f(3)=0f({3}) = 0

f(1,3)=2f({1, 3}) = 2

f(2,3)=1f({2, 3}) = 1

f(1,2,3)=2f({1, 2, 3}) = 2

f(4)=0f({4}) = 0

f(1,4)=2f({1, 4}) = 2

f(2,4)=1f({2, 4}) = 1

f(1,2,4)=2f({1, 2, 4}) = 2

f(3,4)=2f({3, 4}) = 2

f(1,3,4)=3f({1, 3, 4}) = 3

f(2,3,4)=2f({2, 3, 4}) = 2

f(1,2,3,4)=3f({1, 2, 3, 4}) = 3

在前两个例子中,函数 ff 的取值如下:

f(1)=0f({1}) = 0

f(2)=0f({2}) = 0

f(1,2)=1f({1, 2}) = 1

f(3)=0f({3}) = 0

f(1,3)=2f({1, 3}) = 2

f(2,3)=1f({2, 3}) = 1

f(1,2,3)=2f({1, 2, 3}) = 2

f(4)=0f({4}) = 0

f(1,4)=2f({1, 4}) = 2

f(2,4)=1f({2, 4}) = 1

f(1,2,4)=2f({1, 2, 4}) = 2

f(3,4)=2f({3, 4}) = 2

f(1,3,4)=3f({1, 3, 4}) = 3

f(2,3,4)=2f({2, 3, 4}) = 2

f(1,2,3,4)=3f({1, 2, 3, 4}) = 3

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

首页