#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 110;
const int M = 1 << 21;
int f[M];
int a[N];
int n, m, k;
int main(){
scanf("%d%d%d", &n, &m, &k);
int standard = (1 << m) - 1;
memset(f, 0x3f, sizeof f);
for (int i = 1; i <= n; i ++){
for (int j = 1; j <= k; j ++){
int x;
scanf("%d", &x);
a[i] |= ((1 << (x - 1)));
}
f[a[i]] = 1;
}
for (int i = 0; i <= standard; i ++){
for (int j = 1; j <= n; j ++){
f[i | a[j]] = min(f[i | a[j]], f[i] + 1);
}
}
cout << f[standard] << endl;
return 0;
}
糖果。。。。。。。
于 2021-03-24 16:03:47 首次发布