3367989_ac_125ms_348k.cc
来自「北大大牛代码 1240道题的原代码 超级权威」· CC 代码 · 共 66 行
CC
66 行
#include <stdio.h>
#include <algorithm>
using namespace std;
int n, d, k;
int num[1001][16];
int mark[16];
int ans;
void solve()
{
int tmp (0);
for (int i = 0; i < n; i++)
{
int cnt = 1;
for (int j = 1; j <= num[i][0]; j++)
{
if (mark[num[i][j]] == 0)
{
cnt = 0;
break;
}
}
tmp += cnt;
}
if (tmp > ans)
{
ans = tmp;
}
}
void _enum(int pos, int need)
{
if (need == 0)
{
solve();
return ;
}
for (int i = pos; i <= d - need + 1; i++)
{
mark[i] = 1;
_enum(i + 1, need - 1);
mark[i] = 0;
}
}
int main()
{
scanf("%d%d%d", &n, &d, &k);
for (int i = 0; i < n; i++)
{
scanf("%d", &num[i][0]);
for (int j = 1; j <= num[i][0]; j++)
{
scanf("%d", &num[i][j]);
}
}
memset(mark, 0, sizeof(mark));
ans = -1;
_enum(1, k);
printf("%d\n", ans);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?