#P9378. [THUPC 2023 决赛] 物理实验

[THUPC 2023 决赛] 物理实验

题目描述

为了验证新提出的猜想,物理学家小 I 需要完成 nn 种物理实验,其中第 i(1in)i(1 \le i \le n) 种实验的重要度是 2i2^{-i}。每种实验仅需要完成一次。小 I 一次只能做一种实验,且在开始了一个实验之后,不能做到一半去做另一个实验,也就是说在没有任何其他限制的情况下,小 I 完成实验的顺序可以用一个 11nn 的排列表示。

然而事情并非一帆风顺。有 mm 轮宇宙射线,分别会在小 I 完成了 a1a_1 种、a2a_2 种、\dotsama_m 种(注意,不是第 aia_i)实验后轰击实验基地,保证 1a1<a2<<am<nm1 \le a_1 < a_2 < \dots < a_m < n-m。因此小 I 需要仔细地安排实验的顺序。

j(1jm)j(1 \le j \le m) 轮宇宙射线会恰好干扰一种实验的实验仪器,其干扰的实验种类按照以下方式确定:

  • 给出一个 11nn 的排列 pj,1,,pj,np_{j,1},\dots,p_{j,n},其中 ii 越靠前表示第 ii 种实验对这轮宇宙射线越脆弱。每轮给出的排列不一定相同。
  • 那么在这轮宇宙射线轰击实验基地时,目前所有未完成且未被干扰的实验中最脆弱的一种会被干扰,之后无法进行对应实验。

在以上条件下,小 I 总共可以完成 (nm)(n-m) 种实验。小 I 希望它们的重要度总和尽可能大,可是小 I 是物理学家不懂算法,所以小 I 请教于你。你需要给出合理的实验顺序,使得完成的 (nm)(n-m) 种实验均未被宇宙射线干扰且重要度总和尽可能大。

输入格式

输入的第一行包含两个正整数 n,mn,m,表示实验种数和宇宙射线轮数。

接下来一行 mm 个整数 a1,a2,,ama_1,a_2,\dots,a_m,表示每轮宇宙射线在完成了多少种实验后轰击实验基地。

接下来 mm 行,每行 nn 个整数 p1,p2,,pnp_1,p_2,\dots,p_n,依次描述每轮宇宙射线的脆弱程度排序。保证 1pin1 \le p_i \le n 且每行的输入均构成 11nn 的排列。

输出格式

输出一行 nmn-m 个整数,表示你给出的实验顺序。你需要保证做每种实验时这种实验没有被宇宙射线干扰,且重要度总和最大。如果有多种方案,输出任意一种即可。

3 1
1
1 2 3

1 3

3 1
1
2 3 1

2 1

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

1 4 5 2

提示

【样例解释 #1】

小 I 第一次完成第一种实验后,宇宙射线将会轰击第二种实验的仪器,因此第二次只能完成第三种实验。容易证明该方案达到最大重要度。

【样例解释 #2】

在这个样例中,如果小 I 第一次完成第一种实验,那么宇宙射线将会轰击第二种实验的仪器,导致第二次只能完成第三种实验。此时重要度为 0.6250.625,而样例输出给出的方案重要度为 0.750.75

【样例解释 #3】

该组样例有多个合法的输出,如 5 4 1 2 也是一个合法的答案。

【数据范围】

对于所有测试数据,3n6003 \le n \le 6001mn121 \le m \le \lfloor \frac{n-1}{2} \rfloor1a1<a2<<am<nm1 \le a_1 < a_2 < \dots < a_m < n-m

【题目来源】

来自 2023 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2023)决赛。

题解等资源可在 https://github.com/THUSAAC/THUPC2023 查看。