??

    技术2022-07-10  112

    HZNUOJ 2507 花港观鱼

    题目

    描述 KK在题目做不出来之际打算去西湖游玩,当他走过花港观鱼的长廊时,发现下面有很多可爱漂亮的锦鲤,KK是一个迷信的人,他认为喂这些锦鲤可以给他带来好运,所以他打算用自己喂鱼。 KK分几次向鱼儿们投食了自己,但是鱼很多很拥挤,有几条鱼儿重复吃到了KK的投食。 KK想要知道一共有几只锦鲤吃到了自己,你可以替他计算吗?

    输入 多组输入,每一组输入的第一行给出一个数字n,表示KK本次投食喂食了几次,0代表输入结束。(0<=n<=1000) 接下来的n行里,每行的开头给出一个数字k,紧接着跟随着k个数字,代表这一轮投食的k条吃到KK的鱼的编号p。(0<=p<=1000) 鱼的编号可能重复出现。

    输出 每组测试输出一个数字M,代表吃到KK的鱼的数量。

    input 3 4 333 444 555 666 3 333 123 333 3 333 444 555 2 1 111 2 111 111 0

    output 5 1

    题解

    因为题目给的范围不是很大,所以可以思考用一个数组的下标来表示是否已经存在这个编号的鱼,再遍历一遍就可以得出吃到鱼的数量

    AC代码

    #include<stdio.h> int main(){ int n,i,k,p,total,m; while(~scanf("%d",&n),n){ int a[1050]={0}; total=0; while(n--){ scanf("%d",&k); for(i=0;i<k;i++){ scanf("%d",&p); a[p]++; } } for(i=0;i<=1000;i++){ if(a[i]>0){ total++; } } printf("%d\n",total); } }
    Processed: 0.012, SQL: 9