试题库问题
题目描述
问题描述:
假设一个试题库中有 $n$ 道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取 $m$ 道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算法。
编程任务:
对于给定的组卷要求,计算满足要求的组卷方案。
输入输出格式
输入格式
第一行有两个正整数 $k$ 和 $n$。$k$ 表示题库中试题类型总数,$n$ 表示题库中试题总数。
第二行有 $k$ 个正整数,第 $i$ 个正整数表示要选出的类型 $i$ 的题数。这 $k$ 个数相加就是要选出的总题数 $m$。
接下来的 $n$ 行给出了题库中每个试题的类型信息。每行的第一个正整数 $p$ 表明该题可以属于 $p$ 类,接着的 $p$ 个数是该题所属的类型号。
输出格式
输出共 $k$ 行,第 $i$ 行输出 `i: ` 后接类型 $i$ 的题号。
如果有多个满足要求的方案,只要输出一个方案。
如果问题无解,则输出`No Solution!`。
输入输出样例
输入样例 #1
3 15
3 3 4
2 1 2
1 3
1 3
1 3
1 3
3 1 2 3
2 2 3
2 1 3
1 2
1 2
2 1 2
2 1 3
2 1 2
1 1
3 1 2 3
输出样例 #1
1: 1 6 8
2: 7 9 10
3: 2 3 4 5
说明
$2\leq k \leq 20$,$k \leq n \leq 10^3$。
---
感谢 @PhoenixEclipse 提供 spj