QOJ.ac

QOJ

حد الوقت: 3 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#11357. 叶子之环

الإحصائيات

你的朋友给了你一棵有根树:一个包含 $N$ 个节点和 $N - 1$ 条边的连通图。树的节点编号从 $1$ 到 $N$,其中节点 $1$ 是树的根,其他节点编号任意。

然而,你最近了解到了“衔尾蛇”(Ouroboros),这是一种古老的神话蛇,它吞食自己的尾巴,象征着一个没有起点和终点的循环。你不喜欢你得到的这棵树有非常明确的起点(根)和明确的终点(叶子),所以你决定彻底改变这棵树的结构,将其变成一个你称之为“衔尾蛇图”(Ouroboros Graph)的新图。

为了构建这个衔尾蛇图,你取出树的叶子节点(没有直接子节点的节点),并绘制特殊的“叶子”边,将每个叶子直接连接到根节点。如果已经存在一条连接叶子和根的边,你仍然会添加一条重复的边。

有了这种特殊的图结构,你现在可以通过移除某些边的子集来创建许多不同的树。秉承衔尾蛇的精神,叶子和根可以根据你移除的边子集而改变。通过从衔尾蛇图中移除一个边子集,你可以制造出多少种不同的树?如果一棵树包含另一棵树所没有的边,则认为这两棵树是不同的。(如果一条普通边和一条“叶子”边连接了同一对节点,那么它们是可以相互区分的,被视为不同的边。)由于树的数量可能很大,请计算答案对 $998\,244\,353$ 取模的结果。

输入格式

输入的第一行包含一个整数 $N$ ($2 \le N \le 200\,000$),表示树的节点数。

接下来的 $N - 1$ 行,每行包含两个空格分隔的整数 $a$ 和 $b$ ($1 \le a, b \le N$),表示树中父节点 $a$ 和子节点 $b$ 之间存在一条边。保证输入图确实是一棵树:图中每对节点之间存在唯一的路径。

输出格式

输出通过从输入树的衔尾蛇图中移除某些边子集所能创建的不同树的数量,结果对 $998\,244\,353$ 取模。

说明

在下图中,左侧子图展示了对应于样例输入 1 的衔尾蛇图,其中原始树的边用黑色绘制,“叶子”边用红色虚线绘制。右侧的树展示了通过从衔尾蛇图中删除某些边子集所能形成的 72 种不同树中的一种:在这种情况下,删除了原始边 6–5 和 1–3,以及“叶子”边 1–8 和 1–4。

衔尾蛇图与删除部分边后的树

样例

样例输入 1

8
1 3
3 2
1 4
1 7
7 6
6 5
6 8

样例输出 1

72

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.