AtCoder Beginner Contest 166 比赛人数11690 比赛开始后11分钟看到所有题
AtCoder Beginner Contest 166 B Trick or Treat 看懂题目不易+桶排序
总目录详见https://blog.csdn.net/mrcrack/article/details/104454762
在线测评地址https://atcoder.jp/contests/abc166/tasks/abc166_b
The following di Snukes have Snack i: Snuke Ai,1,Ai,2,⋯,Ai,di此句最难懂。题意不懂,根本没法做,比赛中,有交代在此的不好感觉。如何读懂的?在题干,样例,样例说明,之间来回跳跃,请注意,中间还不断拿出纸笔,进行演算,才弄懂的。
题目想要表达什么意思?以样例作为说明
Input:
3 2
2
1 3
1
3
Output:
1
3 2
3表示有3个Snuke,2表示有2种Snack
2
2表示第1种类型的Snack分布在2个Snuke中
1 3
1表示第1种类型的Snack分布在第1个Snuke中
3表示第1种类型的Snack分布在第3个Snuke中
1
1表示第2种类型的Snack分布在1个Snuke中
3
3表示第2种类型的Snack分布在第3个Snuke中
思路,类桶排序,开个数组,记录Snuke拥有Snack的情况。具体,详见代码。
AC代码如下
#include <stdio.h>
int cnt[105],tot;
int main(){
int n,k,m,i,j,a;
scanf("%d%d",&n,&k);
for(i=1;i<=k;i++){
scanf("%d",&m);
for(j=1;j<=m;j++){
scanf("%d",&a);
cnt[a]++;//记录拥有Snack的Snuke
}
}
for(i=1;i<=n;i++)
if(cnt[i])tot++;//统计拥有的Snack的Snuke数量
printf("%d\n",n-tot);//输出没有拥有的Snack的Snuke数量
return 0;
}