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;
}


京公网安备 11010502036488号