SSL_1063&&P1097【统计数字】

统计数字

题目

明明的随机数统计数字


解析

初看题,看数据
似曾相识明归来
排序/二分都能轻松水掉,然而蒟蒻用的是哈希为什么学哈希就要用哈希
经过一番乱搞,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;
}

猜你喜欢

转载自blog.csdn.net/zhanglili1597895/article/details/112970156
今日推荐