pku2436.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 57 行

CPP
57
字号
#include <stdio.h>
#include <string.h>

int N, D, K;
int v[1100];

int Calc(int x)
{
	int cnt = 0;
	int i;
	for (i = 0; i < D; i++)
	{
		cnt += (1 << i) & x ? 1 : 0;
	}
	return cnt;
}

int main()
{
	int k, i, j, p;
	int max, cnt;
	while (EOF != scanf("%d %d %d", &N, &D, &K))
	{
		memset(v, 0, sizeof(v));
		for (i = 0; i < N; i++)
		{
			scanf("%d", &k);
			while (k--)
			{
				scanf("%d", &p);
				v[i] = v[i] | (1 << (p - 1));
			}
		}
		max = 0;
		for (i = 0; i < 1 << D; i++)
		{
			if (Calc(i) != K)
				continue;
			cnt = 0;
			for (j = 0; j < N; j++)
			{
				if ((v[j] & i) == v[j])
				{
					cnt++;
				}
			}
			if (cnt > max)
			{
				max = cnt;
			}
		}
		printf("%d\n", max);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?