#2388. 最少选择使全集覆盖(Minimum Covering Sets)
最少选择使全集覆盖(Minimum Covering Sets)
【题目描述】
有一个大小为 的全集,元素编号为 到 。现在给出 个集合 ,每个集合包含若干个元素,集合通过二进制字符串表示。你的任务是从这 个集合中选择若干个,使得它们的并集正好覆盖全集(即所有 个元素都至少被覆盖一次),并输出需要选择的最少集合数。
如果无法覆盖全集,输出 -1。
【输入格式】
第一行两个整数 (,) 接下来 行,每行一个长度为 的二进制字符串,表示一个集合
【输出格式】
输出一个整数,表示最少需要选择的集合数使得它们的并集是全集,如果无解输出 -1
【输入样例】
5 4
11000
00110
00011
00001
【输出样例】
3