每日一題 統計數字

2022-06-05 19:24:10 字數 1864 閱讀 8174

難度星級:2星

主要考察:排序、字典

這是一道簡單(相對於部分語言來說)的排序的題目,先來看題

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

某次科研調查時得到了n個自然數,每個數均不超過1500000000(\(1.5*10^9\))。已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。

第1行是整數n,表示自然數的個數。

第2~n+1行每行乙個自然數。

輸出m行(m為n個自然數中不相同數的個數),按照自然數從小到大的順序輸出。每行輸出兩個整數,分別是自然數和該數出現的次數,其間用乙個空格隔開。

輸入
824

245100

2100

輸出
2 3

4 25 1

100 2

40%的資料滿足:1 ≤ n ≤ 1000

80%的資料滿足:1 ≤ n ≤ 50000

100%的資料滿足:1 ≤ n ≤ 200000,每個數均不超過1500000000(\(1.5*10^9\))

這道題要考慮的有兩個點,一是統計輸入的所有自然數,二是輸出的時候要按照數字大小公升序輸出。

考慮到這兩點,我決定用python來ac這道題。

分別解決這兩個點

統計輸入的所有自然數

這個很簡單,只要開乙個字典,將數字作為鍵,次數作為值就好了

number = {}

for i in range(n):

x = int(input())

if x in number.keys():

number[x] += 1

else:

number[x] = 1

輸出的時候要按照數字大小公升序輸出

我這裡用的方法是把所有的鍵存入乙個列表中,再將列表排序,由於python列表有排序用的sort()方法,所以直接呼叫就好了,如果是其他語言的話,就這給的時間限制,我估計無論用什麼排序應該也都不會超時吧。當然肯定也不止這種方法,隨意發揮就好。排序完後依次輸出就好了。

能力有限,如有錯誤之處,敬請指正!

A 統計數字

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

演算法實現題 統計數字

一本書的頁碼從自然數 1 開始順序編碼直到自然數 n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字 0。例如,第 6 頁用數字 6 表示,而不是 06 或 006 等。數字計數問題要求對給定書的總頁碼 n,計算出書的全部頁碼中分別用到多少次數字 0,1,2,9。給定表示書的總頁碼的 10...

頁碼統計(統計數字)

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