codeup 1782 谁是你的潜在好友

博客围绕codeup 1782谁是你的潜在好友题目展开,题目要根据借阅记录计算每人潜在朋友数量,遵循‘臭味相投’原则,即读同一本书的为潜在朋友。解题思路采用散列,将输入数作为下标,其出现次数作为数组值,还需用数组保存输入数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值