一人行者
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

像孤单的旅行家
这人生一路风沙
却固执相信着前方
有为我开出的花

原谅我总是分不清坚强和倔强
原谅我总是看着没有尽头的远方
天亮那路在呼唤我的行囊和我的吉他
原谅我的不陪伴
我已经出发

——《一人行者》ilem(侵删)

ilem给了你一棵树,有n个节点。
树的定义是有n个节点,n-1条边的无向联通图
现求出,对于每个 仅断掉第i条边,保留余下的 n-2 条边,变成两棵树之后,这两棵树的联通子集数量对998244353取模的值。

连通子集定义为树的所有节点的一个非空子集 S 满足对于任意两个节点 x,y之间的简单路径经过的所有点都属于 S。特别的,单个节点也是联通子集。

输入描述:

第一行一个正整数

后面n-1行,每行两个正整数表示第i条边连接a_i,b_i节点。

输出描述:

n-1行,每行两个数,分别表示第 i 行表示断掉第i条边,其他n-2条边都保持联通的状态时,a_i,b_i所在的树的联通子集个数对 998244353 取模后的值。
示例1

输入

复制
5
1 2
1 3
3 4
5 3

输出

复制
11 1
3 6
10 1
1 10

说明

断掉第2条边之后,1号节点所在的树有连通块:\{1\},\{2\},\{ 1,2\},3号节点所在的树有连通块:\{3\},\{4\},\{5\},\{3,4\},\{3,5\},\{3,4,5\}

备注: