可看做单值函数映射问题。
定义域{x}为人的ID,值域{y}为书的ID。
维护一个x->y的单映射关系p2b(person to book),再记录y有多少个人(x)映射过,即为答案~
#include<cstdio> #define MAX 210 int p2b[MAX]; int b[MAX]; int main(){ int n, m, bookIdx; scanf("%d %d",&n, &m); for(int i=1;i<=n;++i){ scanf("%d", &bookIdx); p2b[i]=bookIdx; ++b[bookIdx]; } for(int i=1;i<=n;++i){ int valueNum = b[p2b[i]]; if(valueNum==1){ printf("BeiJu\n"); }else{ printf("%d\n", valueNum-1); } } return 0; }