首页 > 代码库 > 九度1156:谁是你的潜在朋友
九度1156:谁是你的潜在朋友
http://ac.jobdu.com/problem.php?pid=1156
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:3990
解决:1837
- 题目描述:
“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。
首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。
- 输入:
每个案例第一行两个整数N,M,2 <= N ,M<= 200。接下来有N行,第i(i = 1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)
- 输出:
每个案例包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^ ^)
- 样例输入:
4 5 2 3 2 1
- 样例输出:
1 BeiJu 1 BeiJu
- 来源:
- 2011年北京大学计算机研究生机试真题
- 答疑:
- 解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7879-1-1.html
1.用结构体来记录读者i-1最喜欢的图书的编号P(其实可以理解为读者i)
2.利用Hash函数来构造读者i-1最喜欢的图书的编号P一一对应的关系
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include<iostream> #include<cstdio> #include<cstring> using namespace std; struct H{ int num; int P; }; int main(){ int n,m,i; H Hash[210]; while ( scanf ( "%d%d" ,&n,&m)!=EOF){ memset (Hash,0, sizeof (Hash)); int x; for (i=1;i<=n;i++){ scanf ( "%d" ,&Hash[i].P); Hash[Hash[i].P].num++; } for (i=1;i<=n;i++){ if (Hash[Hash[i].P].num>1){ printf ( "%d\n" ,Hash[Hash[i].P].num-1); } else printf ( "BeiJu\n" ); } } return 0; } /************************************************************** Problem: 1156 User: lanjiangzhou Language: C++ Result: Accepted Time:10 ms Memory:1520 kb ****************************************************************/ |
九度1156:谁是你的潜在朋友
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。