#61065. 树上的宝藏
树上的宝藏
暂无测试数据。
蒜头君有一棵 $n$ 个节点的树(即 $n$ 个节点,$n-1$ 条边的无向连通图)。树的每个节点上都有一个宝藏。蒜头君准备大动干戈,拿到这些保证。
但是在拿宝藏之前,蒜头君发现了一个问题,由于树的边的材质问题,若两个节点被一条边直接连接,为了确保安全,那么这两个节点上的宝藏最多可以拿一个。
好在同样擅长化学的巨佬--花椰妹给了蒜头君一条特殊材质的边。蒜头君可以选定一条边并将这条边的材质替换成特殊材质的边,于是为了确保安全,被这条选定的边直接相连的两个节点上的宝藏最少拿一个。
蒜头君想知道,对于每一条边,若选定这条边替换成花椰妹送给他的特殊材质的边,在确保安全的情况下,有多少种拿的方法是可行的。
输入格式
第一行一个正整数 $n$。
后面 $n-1$ 行,第 $i$ 行有每行两个正整数 $u,v$ 代表第 $i-1$ 条边连接着点 $u$ 和点 $v$。
输出格式
一共 $n-1$ 个数,每个数一行。第 $i$ 个数代表选择第 $i$ 条边后的合理拿法的数量。由于数量可能很大,请输出结果对 $998244353$ 取模的余数。
数据范围
数据点编号 | 额外条件 |
---|---|
1 2 3 | $n\le 11$ |
4 5 6 | $n\le 1000$ |
7 8 | $u=v-1$ |
9 10 | 无特殊条件 |
对于所有数据,满足 $2\le n\le 3\times 10^5$, $1\le u,v\le n$ 且输入数据构成一棵树。
提示
本题读入量和输出量较大。若选手使用 cin
和 cout
,请在 main
程序读入前加上代码 ios:sync_with_stdio(0);
。
5
1 2
2 3
2 4
1 5
7
10
10
13