题目大意:
给定N,Q,N代表人数,Q代表最少需要参加的人数
,接下来N行表示每个人方便的日期。选出一个日期尽可能满足要求的日期
解题思路:
用一个数组记录日期,然后选择最满足条件的
代码如下:
#include<stdio.h>
int main()
{
int m,n,i,j,x,k,max;
int count;
int date[120];
while(scanf("%d%d",&m,&n)&&(m||n))
{
k=-1;max=0;
memset(date,0,sizeof(date));
for(i=1;i<=m;i++)
{
scanf("%d",&count);
for(j=1;j<=count;j++)
{
scanf("%d",&x);
date[x]++;
}
}
for(i=1;i<=100;i++)
{
if(date[i]>=n)
{
if(max==0)
{
max=date[i];
k=i;
}
else
{
if(date[i]>max)
{
max=date[i];
k=i;
}
}
}
}
if(k!=-1)
{
printf("%d\n",k);
}
else
{
printf("0\n");
}
}
return 0;
}
本文介绍了一种通过统计每个人方便的日期来选择满足最少参会人数的活动日期的算法。使用数组记录所有可能的日期,并遍历数组找出符合要求且参与人数最多的日期。
1191

被折叠的 条评论
为什么被折叠?



