CF1554E.You

省选/NOI-

通过率:0%

时间限制:5.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a tree with nn nodes. As a reminder, a tree is a connected undirected graph without cycles.

Let a1,a2,…,ana_1, a_2, \ldots, a_n be a sequence of integers. Perform the following operation exactly nn times:

  • Select an unerased node uu. Assign au:=a_u := number of unerased nodes adjacent to uu. Then, erase the node uu along with all edges that have it as an endpoint.

For each integer kk from 11 to nn, find the number, modulo 998 244 353998\,244\,353, of different sequences a1,a2,…,ana_1, a_2, \ldots, a_n that satisfy the following conditions:

  • it is possible to obtain aa by performing the aforementioned operations exactly nn times in some order.
  • gcd⁡(a1,a2,…,an)=k\operatorname{gcd}(a_1, a_2, \ldots, a_n) = k. Here, gcd⁡\operatorname{gcd} means the greatest common divisor of the elements in aa.

给你一棵包含 nn 个节点的树。需要提醒的是,树是一种无环的连通无向图。

设 a1,a2,…,ana_1, a_2, \ldots, a_n 是一个整数序列。执行以下操作恰好 nn 次:

  • 选择一个尚未被擦除的节点 uu。令 au:=a_u := 与 uu 相邻且尚未被擦除的节点的数量。然后,将节点 uu 及其所有以 uu 为端点的边一并擦除。

对每个从 11 到 nn 的整数 kk,求满足以下条件的不同序列 a1,a2,…,ana_1, a_2, \ldots, a_n 的个数(对 998 244 353998\,244\,353 取模):

  • 存在某种执行上述操作 nn 次的顺序,使得最终得到的序列为 aa;
  • gcd⁡(a1,a2,…,an)=k\operatorname{gcd}(a_1, a_2, \ldots, a_n) = k。此处 gcd⁡\operatorname{gcd} 表示序列 aa 中所有元素的最大公约数。

输入格式

The first line contains a single integer tt (1≤t≤10 0001 \le t \le 10\,000) — the number of test cases.

The first line of each test case contains a single integer nn (2≤n≤1052 \le n \le 10^5).

Each of the next n−1n - 1 lines contains two integers uu and vv (1≤u,v≤n1 \le u, v \le n) indicating there is an edge between vertices uu and vv. It is guaranteed that the given edges form a tree.

It is guaranteed that the sum of nn over all test cases doesn't exceed 3⋅1053 \cdot 10^5.

第一行包含一个整数 tt(1≤t≤10 0001 \le t \le 10\,000)—— 表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn(2≤n≤1052 \le n \le 10^5)。

接下来的 n−1n - 1 行中,每行包含两个整数 uu 和 vv(1≤u,v≤n1 \le u, v \le n),表示顶点 uu 与顶点 vv 之间存在一条边。保证所给的边构成一棵树。

保证所有测试用例的 nn 之和不超过 3⋅1053 \cdot 10^5。

输出格式

For each test case, print nn integers in a single line, where for each kk from 11 to nn, the kk-th integer denotes the answer when gcd⁡\operatorname{gcd} equals to kk.

对于每个测试用例,在一行中输出 nn 个整数,其中对每个从 11 到 nn 的 kk,第 kk 个整数表示当 gcd⁡\operatorname{gcd} 等于 kk 时的答案。

输入输出样例

  • 输入#1

    2
    3
    2 1
    1 3
    2
    1 2

    输出#1

    3 1 0
    2 0

说明/提示

In the first test case,

  • If we delete the nodes in order 1→2→31 \rightarrow 2 \rightarrow 3 or 1→3→21 \rightarrow 3 \rightarrow 2, then the obtained sequence will be a=[2,0,0]a = [2, 0, 0] which has gcd⁡\operatorname{gcd} equals to 22.
  • If we delete the nodes in order 2→1→32 \rightarrow 1 \rightarrow 3, then the obtained sequence will be a=[1,1,0]a = [1, 1, 0] which has gcd⁡\operatorname{gcd} equals to 11.
  • If we delete the nodes in order 3→1→23 \rightarrow 1 \rightarrow 2, then the obtained sequence will be a=[1,0,1]a = [1, 0, 1] which has gcd⁡\operatorname{gcd} equals to 11.
  • If we delete the nodes in order 2→3→12 \rightarrow 3 \rightarrow 1 or 3→2→13 \rightarrow 2 \rightarrow 1, then the obtained sequence will be a=[0,1,1]a = [0, 1, 1] which has gcd⁡\operatorname{gcd} equals to 11.

Note that here we are counting the number of different sequences, not the number of different orders of deleting nodes.

在第一个测试用例中,

  • 如果我们按顺序 1→2→31 \rightarrow 2 \rightarrow 3 或 1→3→21 \rightarrow 3 \rightarrow 2 删除节点,则得到的序列为 a=[2,0,0]a = [2, 0, 0],其 gcd⁡\operatorname{gcd} 等于 22。
  • 如果我们按顺序 2→1→32 \rightarrow 1 \rightarrow 3 删除节点,则得到的序列为 a=[1,1,0]a = [1, 1, 0],其 gcd⁡\operatorname{gcd} 等于 11。
  • 如果我们按顺序 3→1→23 \rightarrow 1 \rightarrow 2 删除节点,则得到的序列为 a=[1,0,1]a = [1, 0, 1],其 gcd⁡\operatorname{gcd} 等于 11。
  • 如果我们按顺序 2→3→12 \rightarrow 3 \rightarrow 1 或 3→2→13 \rightarrow 2 \rightarrow 1 删除节点,则得到的序列为 a=[0,1,1]a = [0, 1, 1],其 gcd⁡\operatorname{gcd} 等于 11。

注意:此处我们统计的是不同序列的数量,而非不同删除节点顺序的数量。

输入解题思路,AI测评打分。不知道怎么写?

首页