Hash 統計數字

2021-09-05 17:34:06 字數 595 閱讀 2830

給定n個數,每個數均不超過1.5*109,統計這些數各自出現的次數,並按照從小到大的順序輸出統計結果。

資料規模有1.5*109,所以雜湊關鍵字本身作為位址會爆

所以想到用雜湊表

除了記錄某個s是否出現,還要記錄出現的次數,所以可以用乙個二維陣列,加乙個儲存出現次數的即可。

完後,將雜湊表裡的數放在乙個新開的陣列,排序後輸出

#include#include#include#define h(x) x%p

#define p 1000007//質數

using namespace std;

struct a

ans[p];

int n,x,a[p][2],num;

//a[x][0] 記錄雜湊函式值為x的s值,a[x][2] 記錄這個 s 值出現了幾次

int loc(int x)

//查詢關鍵字在雜湊表的位置

bool cmp(a a,a b)

sort(ans+1,ans+1+num,cmp);//快速排序

for(int i=1;i<=num;i++)

cout<}

A 統計數字

time limit 1 sec memory limit 128 mb submit 51 solved 28 submit status web board 某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 109 已知不相同的數不超過10000個,現在需要統計這些自然...

頁碼統計(統計數字)

牛牛新買了一本演算法書,演算法書一共有n頁,頁碼從1到n。牛牛於是想了乙個演算法題目 在這本演算法書頁碼中0 9每個數字分別出現了多少次?輸入描述 輸入包括乙個整數n 1 n 1,000,000,000 輸出描述 輸出包括一行10個整數,即0 9這些數字在頁碼中出現的次數,以空格分隔。行末無空格。示...

統計數字問題

在王曉東編著的 演算法設計與實驗題解 中看到的這個問題,問題描述如下 一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字0。例如第6頁用6表示而不是06或006。數字統計問題要求對給定書的總頁碼,計算出書的全部頁碼中分別用到多少次數字0,1,2,...