描述
Victoria是一位颇有成就的艺术家,他因油画作品《我爱北京天安门》闻名于世界。现在,他为了报答帮助他的同行们,准备开一个舞会。
Victoria准备邀请n个已经确定的人,可是问题来了:
这n个人每一个人都有一个小花名册,名册里面写着他所愿意交流的人的名字。比如说在A的人名单里写了B,那么表示A愿意与B交流;而且如果A名单里面有B,那么B名单里面肯定有A,也就是说两个人如果一方愿意和另一方交流,那么另一方也肯定愿意和这一方交流。
Victoria觉得需要在这n个人里面确定m个人,保证这m个人每一个人都能在舞会的n个人中找到至少k个人交流,并求出一种方案以确定m的最大值是多少。
注意:自己的名单里面不会有自己的名字。
格式
输入格式
第一行两个数n和k。接下来n行,每i+1行表示编号为i的人的小花名册名单,名单以0结束。1<=n,k<=200。
输出格式
一个数,m。
样例1
样例输入1[复制]
22 1 4 5 10 11 20 21 0 2 3 6 8 11 16 0 2 3 5 8 12 15 16 18 0 1 5 6 10 11 12 16 18 0 1 3 4 16 20 0 2 4 19 21 22 0 8 9 13 19 20 0 2 3 7 10 19 0 7 10 14 16 19 0 1 4 8 9 10 20 0 1 2 4 18 19 20 21 0 3 4 13 0 7 12 15 16 18 19 21 22 0 9 16 0 3 13 21 0 2 3 4 5 9 13 14 20 0 18 22 0 3 4 11 13 17 21 0 6 7 8 9 11 13 19 21 22 0 1 5 7 10 11 16 21 22 0 1 6 11 13 15 18 19 20 0 6 13 17 19 20 0
样例输出1[复制]
22
限制
每个测试点1秒。
SB题。。
CODE:
#include <iostream> #include <cstdio> #include <cstring> #define REP(i, s, n) for(int i = s; i <= n; i ++) #define REP_(i, s, n) for(int i = n; i >= s; i --) #define MAX_N 200 + 10 using namespace std; int main(){ int n, k, res = 0; scanf("%d%d", &n, &k); REP(i, 1, n){ int tmp, num = 0; while(scanf("%d", &tmp) != EOF){ if(tmp == 0) break; num ++; } if(num >= k) res ++; } printf("%d\n", res); return 0; }
时间: 2024-11-05 15:59:44