int main() {
	while (scanf("%d%d", &n, &m) != EOF) {
		memset(g, 0, sizeof (g));
		for (int i = 0; i < n; i++) {
			int mm, x;
			scanf("%d", &mm);
			for (int j = 0; j < mm; j++) {
				scanf("%d", &x);
				g[i][x] = 1;
			}
		}
		printf("%d\n", max_match());
	}
	return 0;
}
int main(){
    while(scanf("%d", &n)!=EOF){
	int x, y, m;
	memset(map, 0, sizeof(map));
	for(int i=0;i<n;i++){
	    scanf("%d:", &x);
	    getchar();
	    scanf("(%d)", &m);
	    for(int j=0;j<m;j++){
		scanf("%d", &y);
		map[x][y]=1;
	    }
	}
	printf("%d\n", n-max_match()/2);
    }
    return 0;
}
Ejemplo n.º 3
0
int main() {
	get_prime();
	long long l, r;
	while (scanf("%lld%lld", &l, &r) && l + r > 0) {
		for (int i = 0; i < N; ++ i) {
			neighbors[i].clear();
		}
		std::set<long long> set;
		for (long long i = l; i <= r; ++ i) {
			long long x = i;
			for (int j = 0; (long long)primes[j] * primes[j] <= x; ++ j) {
				if (x % primes[j] == 0) {
					set.insert(primes[j]);
				}
				while (x % primes[j] == 0) {
					x /= primes[j];
				}
			}
			if (x > 1) {
				set.insert(x);
			}
		}
		size = 0;
		for (std::set<long long>::iterator iter = set.begin(); iter != set.end(); iter ++, size ++) {
			long long x = *iter;
			map[size] = x;
			for (long long i = l; i <= r; ++ i) {
				if (i % x == 0) {
					neighbors[i - l].push_back(size);
					// printf("%d %d\n", i, x);
				}
			}
		}
		n = r - l + 1;
		memset(invalid, 0, sizeof(invalid));
		memset(answer, 0, sizeof(answer));
		for (int i = 0; i < n; ++ i) {
			for (int j = 0; j < (int)neighbors[i].size(); ++ j) {
				int x = neighbors[i][j];
				if (invalid[x]) {
					continue;
				}
				invalid[x] = true;
				if (!max_match(i + 1)) {
					invalid[x] = false;
				} else {
					answer[i] = map[x];
					break;
				}
			}
			if (answer[i] == 0) {
				for (int j = 0; j < neighbors[i].size(); ++ j) {
					int x = neighbors[i][j];
					if (!invalid[x]) {
						answer[i] = map[x];
						invalid[x] = true; 
						break;
					}
				}
			}
		}
		for (int i = 0; i < n; ++ i) {
			printf("%lld%c", answer[i], i == n - 1 ? '\n' : ' ');
		}
	}
	return 0;
}