#P15917. [Roi2021]投资人报告

[Roi2021]投资人报告

题目描述

一家公司有 nn 只花栗鼠员工,编号为 11nn。编号为 11 的花栗鼠是公司创始人;除创始人外,每只花栗鼠都有且仅有一个直接上司。也就是说,公司层级结构是一棵有根树,父节点是上司,子节点是下属。

有下属的员工称为经理,没有下属的员工称为顾问。每个经理最多有 8 个直接下属。注意,创始人一定是经理。

创始人准备向投资人作一份关于近期产品改进的报告。每项改进都由某位顾问完成,所有改进按完成时间的先后用整数编号。

对于每名顾问,已知其完成的改进列表。每名顾问必须从自己的列表中选择一项改进,并向自己的经理汇报。因此,每名顾问的报告恰好包含一项改进。

每名经理,包括创始人,需要将其所有直接下属的报告合并成自己的报告。合并方式是:将下属报告按某个顺序原样拼接。例如,如果两个下属报告分别是 [1, 3][2, 4, 10],则合并后只能是 [1, 3, 2, 4, 10][2, 4, 10, 1, 3]

创始人希望最终报告中的改进编号按时间顺序递增。请帮助所有顾问选择要报告的改进,并帮助所有经理选择合并下属报告的顺序,使创始人的最终报告中的改进编号严格递增。

输入格式

第一行包含整数 nn,表示公司员工数量。

接下来 nn 行,按编号从 11nn 描述每只花栗鼠:

  • 若该花栗鼠是经理,描述以整数 1 开头,随后是整数 kik_i,表示直接下属数量,再随后是 kik_i 个互不相同的整数,表示这些直接下属的编号;
  • 若该花栗鼠是顾问,描述以整数 2 开头,随后是整数 mim_i,表示可报告改进数量,再随后是 mim_i 个互不相同的整数,表示改进编号。

保证编号为 11 的花栗鼠是经理;每个编号大于 1 的花栗鼠都恰好作为某个经理的直接下属出现一次,并且直接或间接隶属于创始人。

保证所有顾问的 mim_i 之和不超过 100000100000。任意一项改进不会由两个不同顾问完成,即所有顾问列表中的改进编号两两不同。

输出格式

若无法构造满足要求的报告,输出:

No

若可以构造,输出:

Yes

随后可以选择是否输出一份证书。证书按员工编号从 11nn 给出:

  • 若该员工是经理,输出其直接下属的编号列表,顺序为合并这些下属报告的顺序;
  • 若该员工是顾问,输出其应汇报的改进编号。

本题的特殊之处在于:证书可以输出,也可以不输出。若程序不输出证书,但正确判断了是否能构造报告,可以得到该测试点的部分分。

注意:若输出了错误证书,即使 Yes/No 判断正确,该测试点也会得到错误答案并且得 0 分。

数据范围

  • 2n1000002\le n\le 100000
  • 每个经理 1ki81\le k_i\le 8
  • 每个顾问 mi1m_i\ge 1
  • 改进编号在 11100000100000 之间;
  • mi100000\sum m_i\le 100000
  • 所有顾问列表中的改进编号互不相同。

样例

样例 1 输入

6
1 3 5 4 6
2 3 10 61 60
2 2 80 20
2 2 40 70
1 2 3 2
2 4 30 90 91 92

样例 1 输出

Yes
5 6 4
10
20
40
2 3
30

样例 2 输入

3
1 2 2 3
2 1 1
2 1 2

样例 2 输出

Yes

样例 3 输入

5
1 2 2 3
2 1 2
1 2 4 5
2 1 1
2 1 3

样例 3 输出

No

样例说明

第二个样例没有输出证书,对应只能获得部分分的解法。

第三个样例中,每个顾问恰好只有一个改进可选,因此顾问选择是唯一的。第三号经理的报告可能为 [1, 3][3, 1];创始人的报告共有四种可能:

[1, 3, 2]
[2, 1, 3]
[3, 1, 2]
[2, 3, 1]

没有一种按递增顺序排列,因此答案为 No

评分方式

若某子任务中所有测试都正确判断了是否可构造报告,并且所有可构造测试都输出了正确证书,则获得该子任务满分。

否则,若该子任务中所有测试都正确判断了是否可构造报告,并且每个测试的证书要么正确、要么未输出,则获得该子任务部分分。依赖该子任务的后续子任务仍会继续运行,并可能获得满分。

K=maxkiK=\max k_i,即经理的最大直接下属数;设 M=miM=\sum m_i,即所有顾问可选改进数量总和。

子任务 部分分 满分 n,Mn,M 限制 KK 限制 必要子任务 检查信息
1 9 18 n,M10n,M\le 10 K2K\le 2 - 第一处错误
2 3 6 n,M20n,M\le 20 K8K\le 8 样例,1
3 2 4 n,M100n,M\le 100 K2K\le 2 1
4 K5K\le 5 样例,1,3
5 K8K\le 8 样例,1-4
6 n,M500n,M\le 500 K2K\le 2 1,3 仅显示分数
7 K5K\le 5 样例,1,3,4,6
8 K8K\le 8 样例,1-7
9 4 8 n,M2000n,M\le 2000 K2K\le 2 1,3,6
10 3 6 K5K\le 5 样例,1,3,4,6,7,9
11 K8K\le 8 样例,1-10
12 6 12 n,M100000n,M\le 100000 K2K\le 2 1,3,6,9
13 3 6 K5K\le 5 样例,1,3,4,6,7,9,10,12
14 7 14 K8K\le 8 样例,1-13