首页 > 试题广场 >

谁是你的潜在朋友

[编程题]谁是你的潜在朋友
  • 热度指数:16329 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
    “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。     首先你对借阅记录进行了一番整理,把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”(即悲剧,^ ^)
示例1

输入

4  5
2
3
2
1

输出

1
BeiJu
1
BeiJu
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s;
        while ((s = br.readLine()) != null) {
            String[] ss = s.split(" ");
            int N = Integer.parseInt(ss[0]);
            int M = Integer.parseInt(ss[1]);
            int[] a = new int[N];
            int[] b = new int[M + 1];
            Arrays.fill(b, 0);
            for (int i = 0; i < N; i++) {
                a[i] = Integer.parseInt(br.readLine());
                b[a[i]]++;
            }
            for (int i = 0; i < N; i++) {
                if (b[a[i]] == 1) System.out.println("BeiJu");
                else System.out.println(b[a[i]]-1);
            }


        }

    }

}


发表于 2021-04-23 13:45:48 回复(0)
Java 解法
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int[] books = new int[m+1];
        int[] record= new int[n+1];
        for (int i = 1; i <= n; i++) {
            int j = scanner.nextInt();
            books[j]++;
            record[i]=j;
        }
        for (int i = 1; i <= n; i++) System.out.println(books[record[i]]==1?"BeiJu":books[record[i]]-1);
    }
}


发表于 2020-03-14 12:10:30 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] book = new int[m];
        int[] reader = new int[n];
        for(int i = 0; i < n; i++){
            reader[i] = sc.nextInt();
            book[reader[i]]++;
        }
        for(int i = 0; i < n; i++){
            if(book[reader[i]] == 1)
                System.out.println("BeiJu");
            else
                System.out.println(book[reader[i]]-1);
        }
        sc.close();
    }
}
发表于 2019-07-05 11:16:48 回复(0)

问题信息

难度:
3条回答 10982浏览

热门推荐

通过挑战的用户

查看代码