夜间模式
字体
阴影
滤镜
主题色
网络流 24 题 – 试题库问题

题面

洛谷 P2763LOJ #6006

题目描述

假设一个试题库中有 $ n $ 道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取 $ m $ 道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算法。

输入格式

第 $ 1 $ 行有 $ 2 $ 个正整数 $ k $ 和 $ n $。$ k $ 表示题库中试题类型总数,$ n $ 表示题库中试题总数。第 $ 2 $ 行有 $ k $ 个正整数,第 $ i $ 个正整数表示要选出的类型 $ i $ 的题数。这 $ k $ 个数相加就是要选出的总题数 $ m $。

接下来的 $ n $ 行给出了题库中每个试题的类型信息。每行的第 $ 1 $ 个正整数 $ p $ 表明该题可以属于 $ p $ 类,接着的 $ p $ 个数是该题所属的类型号。

输出格式

第 $ i $ 行输出 i: 后接类型 $ i $ 的题号。如果有多个满足要求的方案,只要输出一个方案。如果问题无解,则输出 No Solution!

思路

将每道题目看做一个点,每种分类看做一个点、

由源点向每道题目连权值为 $1$ 的边(每道题目只能选一次),每道题目向其所属的分类连权值为 $1$ 的边(选其中的一种分类),每个分类向汇点连边,权值为该分类要选出的题数。

然后跑一遍最大流,统计被使用的边输出。

代码

暂无评论

发送评论


				
上一篇
下一篇