http://codeup.cn/problem.php?cid=100000582&pid=0
知识点:哈希(hash)即散列
#include<cstdio>
#include<cstring>
const int maxn=1000;
int main()
{
int n,p,count=0;
int i,j;
bool hashTable[maxn];
int a[maxn];
memset(hashTable,false,sizeof(hashTable)); //初始化所有的数据没有输出 为false,包含在#include<cstring>之中
while(scanf("%d%d",&n,&p)!=EOF)//对于题目中若提到'每个案列'时,需要的是测试多组数据 ,所以应该使用这种方式。
{
for(i=0;i<n;i++)</cstring></cstring></cstdio>
{ scanf("%d",&a[i]); } for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(a[i]==a[j]) { hashTable[a[i]]=true; count++; } } } for(int i=0;i<n;i++) { if(hashTable[a[i]]==true) { printf("%d\n",count); } else if(hashTable[a[i]]==false) { printf("BeiJu\n"); } } memset(hashTable,false,sizeof(hashTable)); //多组数据输入,需要重新初始化数组,不然会保留原有的数据。
}
return 0;
}