前言
先做赌徒的,结果发现这道题太TM简单了,然后就先做这道题了。
正题
给出n(1<=n<=200000)个数字,每个数字不超过1500000000。求每个数字出现的次数
输入输出(建议无视)
Input
输入包含n+1行;
第一行是整数n,表示自然数的个数; 第2~n+1每行一个自然数。Output
输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
Sample Input
8
2 4 2 4 5 100 2 100Sample Output
2 3
4 2 5 1 100 2解题思路
这只是哈希的练习题,不代表哈希是最优解,反正也能过对吧(⊙v⊙)。用哈希统计
代码
#include#include using namespace std;const int maxn=299993;struct hashs{ int c,num;};hashs hash[maxn];int n,x;int hashmath(int x)//哈希函数{ return x%maxn;}int locate(int x)//寻找位置{ int i=0,w=hashmath(x); while (i y.num; return x.c