可看做单值函数映射问题。
定义域{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;
}

京公网安备 11010502036488号