AT_arc171_c.[ARC171C] Swap on Tree
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一棵 N 个顶点的树,顶点编号为 1 到 N。第 i 条边连接顶点 ui 和顶点 vi。
此外,有 N 个编号为 1 到 N 的棋子。初始时,棋子 i 放在顶点 i 上。
你可以进行如下操作,任意次(包括 0 次):
- 选择一条边。设该边的两个端点为顶点 u 和 v,交换放在顶点 u 和顶点 v 上的棋子。然后,删除这条被选中的边。
设操作全部结束后,顶点 i 上的棋子为 ai。问作为数列 (a1,a2,…,aN) 可能出现的方案有多少种?请输出方案数对 998244353 取模的结果。
输入格式
输入以如下格式从标准输入读入。
N
u1 v1
u2 v2
⋮
uN−1 vN−1
输出格式
输出作为 (a1,a2,…,aN) 可能出现的方案数对 998244353 取模的结果。
输入输出样例
输入#1
3 1 2 2 3
输出#1
5
输入#2
5 2 5 3 4 1 3 1 5
输出#2
34
输入#3
8 4 5 2 5 3 6 1 3 1 8 2 7 2 8
输出#3
799
说明/提示
限制条件
- 2≤N≤3000
- 1≤ui<vi≤N
- 输入给出的图为一棵树
样例解释 1
例如,可以通过以下步骤得到 (a1,a2,a3)=(2,1,3)。
- 选择第 1 条边,交换顶点 1 和顶点 2 上的棋子,并删除该边。此时 (a1,a2,a3)=(2,1,3)。
- 结束操作。
又如,可以通过以下步骤得到 (a1,a2,a3)=(3,1,2)。
- 选择第 2 条边,交换顶点 2 和顶点 3 上的棋子,并删除该边。此时 (a1,a2,a3)=(1,3,2)。
- 选择第 1 条边,交换顶点 1 和顶点 2 上的棋子,并删除该边。此时 (a1,a2,a3)=(3,1,2)。
- 结束操作。
通过操作可以得到的数列共有以下 5 种:
- (1,2,3)
- (1,3,2)
- (2,1,3)
- (2,3,1)
- (3,1,2)
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?