某次科研調查時得到了n個自然數,每個數均不超過1500000000(1.5*109)。已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。
輸入包含n+1行;
第一行是整數n,表示自然數的個數;
第2~n+1每行乙個自然數。
輸出包含m行(m為n個自然數中不相同數的個數),按照自然數從小到大的順序輸出。每行輸出兩個整數,分別是自然數和該數出現的次數,其間用乙個空格隔開。
824
245100
2100
234
251100
2
40%的資料滿足:1<=n<=1000
80%的資料滿足:1<=n<=50000
100%的資料滿足:1<=n<=200000,每個數均不超過1500 000 000(1.5*109)
法1:我直接暴力。
過一遍整個陣列,i隨著j的數值變化,累加即可。
法2:雜湊表做法。
開兩個結構體,第二個是為了不讓排序後的前面的格仔空出來。其他的就是儲存數和其個數,直接輸出就完事。
暴力
#include
#include
#include
#include
using
namespace std;
int n;
int a[
200001
],b[
10001];
intmain()
sort
(a+1
,a+n+1)
;for
(int i=
1;i<=n;
)//不用i++,i在裡面改變
i=j;
printf
("%d\n"
,sum);}
return0;
}
雜湊#include
#include
#include
#include
#define p 1000007
using
namespace std;
int n,m;
struct node
a[p+10]
;struct node2
b[p+10]
;int
hash
(int x)
intlocate
(int x)
return
(f+i)
%p;}
void
insert
(int x)
//插入元素
//bool pd(int x)查詢是否存在的函式
//bool
cmp(node2 l,node2 r)
intmain()
int tot=0;
for(
int i=
0;isort
(b+1
,b+tot+
1,cmp)
;for
(int i=
1;i<=tot;i++
)return0;
}
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,...