AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2813. 测试用例执行计划

简单通过率 73% · 提交 661 · 通过 481
哈希表排序模拟

小慕当前负责的项目迭代周期内有 N 个功能点(F1, F2, ..., FN)需要进行覆盖测试,每个功能点都被分配了对应的,功能点使用其 ID 作为下标进行标识。 小慕设计了 M 个(T1, T2, ..., TM),每个用例对应了一个覆盖功能点的集合,测试用例使用其 ID 作为下标进行标识,测试用例的优先级定义为其覆盖的功能点的优先级之和。 在开始测试之前,小慕需要确定测试用例的执行顺序,规则为:优先级高的用例先执行,如果存在优先级相同的用例,用例 ID 小的先执行。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第一行输入为 N 和 M ,N 表示特性的数量,M 表示测试用例的数量,0<N<=100 ,0<M<=100 </p> <p> 之后 N 行表示特性 ID=1 到特性 ID=N 的优先级。 </p> <p> 再接下来 M 行表示测试用例 ID=1 到测试用例 ID=M 关联的特性的 ID 的列表。 </p>

输出描述

<p> 按照执行顺序(优先级从大到小)输出测试用例的 ID,每行一个 ID。 </p> <p> 测试用例覆盖的 ID 不重复。 </p>

示例

示例 1

输入

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

输出

3
4
1
2

说明:测试用例的优先级计算如下: T1=Pf1+Pf2+Pf3=1+1+2=4 T2=Pf1+Pf4=1+3=4 T3=Pf3+Pf4+Pf5=2+3+5=10 T4=Pf2+Pf3+Pf4=1+2+3=6 按照优先级从大到小,以及相同优先级,ID 小的先执行的规则,执行顺序为 T3,T4,T1,T2

示例 2

输入

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

输出

1
2
3

说明:测试用例的优先级计算如下: T1=Pf1+Pf2+Pf3=3+1+5=9 T2=Pf1+Pf2+Pf3=3+1+5=9 T3=Pf1+Pf2+Pf3=3+1+5=9 每个优先级一样,按照 ID 从小到大执行,执行顺序为 T1,T2,T3

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
特性优先级表特性ID优先级1121324355测试用例优先级计算T1: 1+1+2=4T2: 1+3=4T3: 2+3+5=10T4: 1+2+3=6执行顺序1. T3 (10)2. T4 (6)3. T1 (4)4. T2 (4)
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「测试用例执行计划」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。