codeup 1782 谁是你的潜在好友
题目描述:
把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。
思路:
(散列)
输入多个数,找出每次输入的数出现的次数。本题巧妙之处不是按惯例把输入数先后顺序作为数组下标,而是把输入的数作为下标,把每次输入的数作为索引,相应出现的次数作为对应的数组值,每次加1。为了要输出每次输入的数出现次数,需要保存对输入的数进行保存(用数组)。
AC代码:
#include<cstdio>
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int s[250]={0};
int person[250]={0};
for(int i=0;i<n;i++)
{
scanf("%d",&person[i]);//保存每次输入的数,用于输出时的索引
s[person[i]]++;
}
for(int i=0;i<n;i++)
{
if(s[person[i]]>1)printf("%d\n",s[person[i]]-1);
else printf("BeiJu\n");
}
}
}