難度星級:2星
主要考察:排序、字典
這是一道簡單(相對於部分語言來說)的排序的題目,先來看題
時間限制:c/c++ 1秒,其他語言2秒某次科研調查時得到了n個自然數,每個數均不超過1500000000(\(1.5*10^9\))。已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。空間限制:c/c++ 262144k,其他語言524288k
64bit io format: %lld
第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這些數字在頁碼中出現的次數,以空格分隔。行末無空格。示...