题目大意:
输入K门课程,m中选课策略,接下来输入k个数字,表示课程编号,接下来输入m组数,每组包括课程的数量c,必须选的可能的最小值r,接下来c个数是课程编号,问Freddie满不满足要求
解题思路:
挨个比较即可
代码如下:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int k,m;
bool vis[10000];
bool mark[10000];
int b;
while(scanf("%d",&k)&&k)
{
scanf("%d",&m);
memset(mark,0,sizeof(mark));
for(int i=1;i<=k;i++)
{
scanf("%d",&b);
mark[b]=true;
}
int c,r,a,count,flag=0;
for(int i=1;i<=m;i++)
{
count=0;
memset(vis,0,sizeof(vis));
scanf("%d%d",&c,&r);
for(int j=1;j<=c;j++)
{
scanf("%d",&a);
if(mark[a]&&!vis[a])
{
count++;vis[a]=true;
}
}
if(count<r)
{
flag=1;
}
}
if(flag)
printf("no\n");
else
printf("yes\n");
}
return 0;
}