欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSL_1063&&P1097【统计数字】

程序员文章站 2022-03-13 15:26:41
...

统计数字

题目

明明的随机数统计数字


解析

初看题,看数据
似曾相识明归来
排序/二分都能轻松水掉,然而蒟蒻用的是哈希为什么学哈希就要用哈希
经过一番乱搞,AC
所以,为什么一定要在可以AC的非哈希代码上加上哈希乱搞呢?

code:

#include<cstdio>
#include<algorithm>
#define mod 1000007
using namespace std;
int n,m,a[mod],s[mod],b[200010],t,l;
int h(int x)
{
	return x%mod;
}
int wh(int x)
{
	int q=h(x),i=0;
	while(i<mod&&a[(q+i)%mod]!=x&&a[(q+i)%mod])i++;
	return (q+i)%mod;
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&b[i]);
		t=wh(b[i]);
		s[t]++,a[t]=b[i];
	}
	sort(b+1,b+n+1);
	for(int i=1;i<=n;)
	{
		t=wh(b[i]),l=i;
		printf("%d %d\n",b[i],s[t]);
		while(b[i]==b[l]&&i<=n)i++;
	}
	return 0;
}