AT_2_stpc2025_2_a.Various Roots
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定正整数 N,K。请判断是否存在一个 N 个顶点的无标号树 T,使得以 T 的 1 个顶点作为根节点所能得到的无标号有根树恰好有 K 种。如存在,请输出其中一种。
有 Q 个测试用例,请分别回答每个测试用例。
无标号树指的是无标号树,即顶点没有编号、作为图同构的树视为同一个的树。设无标号树 G,H 的顶点集合分别为 V(G),V(H)。当且仅当存在一个双射 ϕ:V(G)→V(H),并且满足任意 u,v∈V(G),uv 是 G 的一条边当且仅当 ϕ(u)ϕ(v) 是 H 的一条边时,G,H 被视为相同的无标号树。
无标号有根树是指:对无标号树 T,选取 T 的一个顶点 r 作为根,并使其与其他顶点可区分,称为无标号有根树 (T,r)。
对于两个无标号有根树 (G,a),(H,b),如果存在一个双射 ϕ:V(G)→V(H),并且满足:
- ϕ(a)=b。
- 对于任意 u,v∈V(G),uv 是 G 的一条边当且仅当 ϕ(u)ϕ(v) 是 H 的一条边。
则视为同一个无标号有根树。
输入格式
输入格式如下:
Q case1 case2 ⋮ caseQ
其中,casei 表示第 i 个测试用例,格式如下:
N K
输出格式
请对每个测试用例按照下述格式输出。若不存在满足条件的无标号树 T,输出 No。
若存在,任选一种为顶点标号 1,2,⋯,N,按如下格式输出 T 的所有边:
Yes u1 v1 u2 v2 ⋮ uN−1 vN−1
其中,ui vi 表示 T 的第 i 条边连接顶点 ui 与顶点 vi。
输入输出样例
输入#1
2 4 2 5 1
输出#1
Yes 1 2 1 3 1 4 No
输入#2
1 7 3
输出#2
Yes 1 2 1 3 2 4 2 5 3 6 3 7
说明/提示
部分分
对于额外限制 N≤5 的数据,答对即可获得 10 分。
样例解释 1
对于第 1 个测试用例,输出的是 4 个顶点的星形图。
当以黑色节点为根时,上排 3 个无标号有根树按题意被视为同一种。
下排的无标号有根树则与其他 3 个均不同,因此该树能生成 2 种无标号有根树,满足条件。

而且,顶点编号可以任意,只需边集为 {(3,4),(3,2),(3,1)} 即可,因此这种编号方式也正确。
对于第 2 个测试用例,没有满足条件的无标号树。
该样例满足 N≤5 的部分分限制。
样例解释 2
对于第 1 个测试用例,输出的无标号树如下图。
同色的节点作为根时,得到的无标号有根树视为同一种。
因此,本例恰好能得到 3 种无标号有根树,满足条件。

数据范围
- 所有输入均为整数。
- 1≤Q≤1000
- 1≤K≤N≤1000
- 所有测试用例中的 N 总和不超过 2000。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?