CFCF2205C.Simons and Posting Blogs
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这人生就像一档电视节目,我们随着剧情推进而被卷动。
—— SHUN,TRAP
有 n 个博客。第 i 个博客按顺序提及了 li 个用户,记为一个数组 ai=[ai,1,ai,2,…,ai,li]。
你将依次发布所有 n 个博客。我们维护一个序列 Q,用于描述你最近提及过的用户列表。你需要恰好进行 n 次如下操作:
- 选择一个尚未发布的博客 i(1≤i≤n),然后发布它。对于该博客中每个 1≤j≤li,按照顺序进行以下操作:
- 如果 ai,j 已经在 Q 中,則将 ai,j 移动到 Q 的开头。
- 否则,将 ai,j 插入到 Q 的开头。
请你求出,在所有发布顺序中,最终得到的 Q 的字典序最小值∗。
∗ 对于数组 x 和 y,如果满足以下条件之一,则称 x 的字典序小于 y:
- x 是 y 的前缀,且 x=y;
- 在第一个不相等的位置,x 的元素小于 y 的对应元素。
输入格式
每个测试用例包含多组数据。第一行包含测试用例个数 t(1≤t≤1000)。
每组数据第一行是一个整数 n(1≤n≤3000)——博客数量。
接下来 n 行,第 i 行以一个正整数 li(1≤li≤3000)开头,表示第 i 个博客提及的用户数。随后跟着 li 个整数 ai,1,ai,2,…,ai,li(1≤ai,j≤106),表示该博客中提及的用户列表。
保证所有测试用例的 n 之和不超过 3000。记 i=1∑nli 为 L,保证所有测试用例的 L 之和不超过 3000。
输出格式
记 m 为所有博客中被提及至少一次的用户数量。对于每个测试用例,输出 m 个整数 Q1,Q2,…,Qm,表示字典序最小的 Q。
输入输出样例
输入#1
5 3 5 1 2 3 4 6 3 2 5 1 4 1 9 2 3 2 2 1 6 1 6 1 3 6 1 1 5 4 2 3 3 4 5 1 2 4 3 1 2 4 1 3 3 3 1 5 4 3 2 2 2 5 4 2 3 1 4 5 2 5 5 6 5 5 3 4 7 5 5 8 3 6 4 3 1 1 5 4 2 1 1
输出#1
1 5 2 3 9 6 4 6 1 1 6 1 3 2 4 1 4 3 2 5 6 7
说明/提示
在第一个测试用例中,可以按如下方式发布博客:
- 首先发布第一个博客,Q 变为 [6,4,3,2,1]。
- 再发布第三个博客,Q 变为 [3,2,9,1,6,4]。
- 最后发布第二个博客,Q 变为 [1,5,2,3,9,6,4]。
也可以选择另一种发布顺序:
- 首先发布第三个博客,Q 变为 [3,2,9,1]。
- 再发布第一个博客,Q 变为 [6,4,3,2,1,9]。
- 最后发布第二个博客,Q 变为 [1,5,2,6,4,3,9]。
可以看出 [1,5,2,3,9,6,4] 比另一种方案更小。如果第二个博客不在最后一个发布,则数组第一个元素无法为 1,所以 [1,5,2,3,9,6,4] 是字典序最小的 Q。
在第二个测试用例中,可以按如下顺序发布:
- 先发第一个博客,Q=[6,1]。
- 再发第二个博客,Q 保持为 [6,1]。
在第三个测试用例中,只有一个博客可选,Q=[1,6]。