QOJ.ac

QOJ

Límite de tiempo: 3 s Límite de memoria: 512 MB Puntuación total: 100

#3672. 被遗忘的土地

Estadísticas

Fytelandian 的科学家们以热爱历史研究而闻名。最近,他们发现了 $n$ 座城市遗迹,这些城市无疑属于一个伟大的古代文明。

所有被发现的城市由恰好 $n-1$ 条道路连接,且任意两座城市之间有且仅有一条路径。科学家在每座城市中都发现了大量文献,并得出结论:该文明的人民使用 $k$ 种不同的语言。在城市 $v$ 中,人们使用语言 $a_v$。

已知这些城市组成了若干个联盟,且每座城市恰好属于一个联盟。然而,联盟的具体构成尚不清楚。

设一个联盟为任意城市集合 $c_1, c_2, \dots, c_m$,它们之间可能通过道路连接,也可能不连接。为了管理该联盟,必须能够建立起不同城市之间使用不同语言的人员之间的联系。联盟的首领必须支持所有在城市 $c_i$ 中使用的语言,或者在联盟中任意两座城市 $c_i$ 和 $c_j$ 之间的最短路径上所使用的语言。

联盟中支持的语言越多,翻译官的工作就越困难——优秀的翻译官必须精通所有这些语言!幸运的是,许多语言彼此相似,翻译官掌握的语言越多,学习一门新语言就越容易。每多掌握一门新语言,翻译官学习下一门新语言所需的时间就会减半。

设联盟的语言难度为翻译官学习该联盟支持的所有语言所需的时间。第一门语言的学习时间为 $2^k$ 个单位,因此,若联盟支持的语言数量为 $t$,则该联盟的语言难度等于 $2^k + 2^{k-1} + \dots + 2^{k+1-t}$。注意,由于总共有 $k$ 种语言,该和始终为整数。

设联盟划分是将所有城市划分为若干个联盟的一种方案。如果两个联盟划分中存在两座城市 $u$ 和 $v$,它们在一个划分中属于同一个联盟,而在另一个划分中属于不同的联盟,则这两个联盟划分被认为是不同的。

设联盟划分的合理性为该划分中所有联盟的语言难度之和。

你需要计算所有可能的联盟划分的合理性之和。由于这个数字可能非常大,你只需要求出其对 $998\,244\,353$ 取模后的余数。

输入格式

第一行包含两个整数 $n$ 和 $k$ —— 分别表示城市数量和语言数量 ($1 \le n \le 5000; 1 \le k \le 10$)。

第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ —— 表示各城市使用的语言 ($1 \le a_i \le k$)。

接下来的 $n-1$ 行,每行包含两个整数 $u_i$ 和 $v_i$ —— 表示第 $i$ 条道路连接的城市 ($1 \le u_i, v_i \le n$)。

输出格式

输出所有可能的联盟划分的合理性之和,对 $998\,244\,353$ 取模。

样例

样例输入 1

3 2
1 2 1
1 2
2 3

样例输出 1

48

样例输入 2

6 4
1 2 1 3 4 2
1 2
2 3
3 5
3 4
2 6

样例输出 2

14504

说明

在第一个样例中,有三座城市。考虑所有可能的联盟划分:

  • 三个联盟:

    • $\{1\}$。一座城市,唯一支持的语言是语言 1。语言难度为 $2^2 = 4$。
    • $\{2\}$。一座城市,唯一支持的语言是语言 2。语言难度为 $2^2 = 4$。
    • $\{3\}$。一座城市,唯一支持的语言是语言 1。语言难度为 $2^2 = 4$。 该划分的合理性为 $4 + 4 + 4 = 12$。
  • 两个联盟:

    • $\{1, 2\}$。两座城市,支持语言 1 和 2。语言难度为 $2^2 + 2^1 = 6$。
    • $\{3\}$。一座城市,唯一支持的语言是语言 1。语言难度为 $2^2 = 4$。 该划分的合理性为 $6 + 4 = 10$。
  • 两个联盟:

    • $\{1, 3\}$。两座城市,支持语言 1 和 2。注意,即使联盟中城市仅使用语言 1,语言 2 也会被支持,因为位于城市 1 和 3 之间最短路径上的城市 2 使用了语言 2。语言难度为 $2^2 + 2^1 = 6$。
    • $\{2\}$。一座城市,唯一支持的语言是语言 2。语言难度为 $2^2 = 4$。 该划分的合理性为 $6 + 4 = 10$。
  • 两个联盟:

    • $\{1\}$。一座城市,唯一支持的语言是语言 1。语言难度为 $2^2 = 4$。
    • $\{2, 3\}$。两座城市,支持语言 1 和 2。语言难度为 $2^2 + 2^1 = 6$。 该划分的合理性为 $4 + 6 = 10$。
  • 一个联盟:

    • $\{1, 2, 3\}$。三座城市,支持语言 1 和 2。语言难度为 $2^2 + 2^1 = 6$。 该划分的合理性为 $6$。

所求总和为 $12 + 10 + 10 + 10 + 6 = 48$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.