九度1156:谁是你的潜在朋友

http://ac.jobdu.com/problem.php?pid=1156

题目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

方法:利用结构体+Hash函数。

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

****************************************************************/

时间: 2024-09-29 21:50:52

九度1156:谁是你的潜在朋友的相关文章

题目1156:谁是你的潜在朋友(统计某个数字出现的个数)

题目描述: “臭味相投”——这是我们描述朋友时喜欢用的词汇.两个人是朋友通常意味着他们存在着许多共同的兴趣.然而作为一个宅男,你发现自己与他人相互了解的机会并不太多.幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友.    首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M.同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友.你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友

2983:谁是你的潜在朋友

总时间限制: 1000ms 内存限制: 65536kB描述"臭味相投"--这是我们描述朋友时喜欢用的词汇.两个人是朋友通常意味着他们存在着许多共同的兴趣.然而作为一个宅男,你发现自己与他人相互了解的机会并不太多.幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友.首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,-,N,把M本书依次编号为1,2,-,M.同时,按照"臭味相投"的原则,和你喜欢读同一本书的人,就是你

谁是你的潜在朋友

题目描述:  “臭味相投”——这是我们描述朋友时喜欢用的词汇.两个人是朋友通常意味着他们存在着许多共同的兴趣.然而作为一个宅男,你发现自己与他人相互了解的机会并不太多.幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友.     首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M.同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友.你现在的任务是从这份借阅记录中计算出每个人有几个潜在

倒计时四天——2983:谁是你的潜在朋友

代码: #include<cstdio> #include<iostream> using namespace std; int reader[20100],tong[20100]={0}; int main(){ int n,m,i; cin>>n>>m; for(i=1;i<=n;i++)cin>>reader[i]; for(i=1;i<=n;i++)tong[reader[i]]++; for(i=1;i<=n;i++)

剑指OFFER之从上往下打印二叉树(九度OJ1523)

题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行一个整数n(1<=n<=1000, :n代表将要输入的二叉树元素的个数(节点从1开始编号).接下来一行有n个数字,代表第i个二叉树节点的元素的值.接下来有n行,每行有一个字母Ci.Ci='d'表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号.Ci='l'表示第i个节点有一个左孩子,紧接着是左孩子的编号.Ci='r'表示第i个节点有一个右孩

剑指OFFER之调整数组顺序使奇数位于偶数前面找(九度OJ1516)

题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 输入: 每个输入文件包含一组测试案例.对于每个测试案例,第一行输入一个n,代表该数组中数字的个数.接下来的一行输入n个整数.代表数组中的n个数. 输出: 对应每个测试案例,输入一行n个数字,代表调整后的数组.注意,数字和数字之间用一个空格隔开,最后一个数字后面没有空格. 样例输入: 5 1 2 3 4 5 样例输

九度 1203

#include <cstdio> #include <iostream> using namespace std; #ifdef ONLINE_JUDGE #define FINPUT(file) 0 #define FOUTPUT(file) 0 #else #define FINPUT(file) freopen(file,"r",stdin) #define FOUTPUT(file) freopen(file,"w",stdout)

九度 1205

#include <cstdio> #include <iostream> using namespace std; #ifdef ONLINE_JUDGE #define FINPUT(file) 0 #define FOUTPUT(file) 0 #else #define FINPUT(file) freopen(file,"r",stdin) #define FOUTPUT(file) freopen(file,"w",stdout)

九度 1351 只出现一次的数

#include <cstdio> #include <iostream> using namespace std; #ifdef ONLINE_JUDGE #define FINPUT(file) 0 #define FOUTPUT(file) 0 #else #define FINPUT(file) freopen(file,"r",stdin) #define FOUTPUT(file) freopen(file,"w",stdout)