AtCoder Beginner Contest 166 B Trick or Treat 看懂题目不易+桶排序

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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值