題目背景首先,要注意這道題的資料範圍警告:資料可能存在加強
題目描述
某次科研調查時得到了nn個自然數,每個數均不超過1500000000(
1.5 \times 10^9)1500000000(1.5×10
9)。已知不相同的數不超過1000010000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。
輸入輸出格式
輸入格式:
共n+1n+1行。
第一行是整數nn,表示自然數的個數;
第22至n+1n+1每行乙個自然數。
輸出格式:
共mm行(mm為nn個自然數中不相同數的個數),按照自然數從小到大的順序輸出。
每行輸出22個整數,分別是自然數和該數出現的次數,其間用乙個空格隔開。
輸入輸出樣例
輸入樣例#1:
8242
451002
100輸出樣例#1:
2342
511002
說明40%的資料滿足:1≤n≤1000
80%的資料滿足:1≤n≤50000
100%的資料滿足:1≤n≤200000,每個數均不超過1500000000(1.5×109)
其次,個人認為本題解是最適合萌新的
看別的大佬都用 map 或 set 之類的怪東西,個人認為乙個一維陣列就完全可以ac掉這道題
我感覺我的**應該算快的了用了321ms 1448kb
先用乙個快排
然後進行以下處理(解釋都在核心**裡了~qaq~)
for(int i=1;i<=n;i++)以下是**:else
}cout
"<1
/輸出 i+=sum1;//
相當於將一樣的數算在一起,然後直接到下乙個不相等的數的位置
}
#include#includeview code#include
#include
#include
using
namespace
std;
int s[200001
];int
main()
sort(s+1,s+n+1
);
for(int i=1;i<=n;i++)
else
}cout
"<1
<
i+=sum1;
}return0;
}
洛谷 P1097 統計數字
某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 10 9 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。輸入格式 輸入檔案count.in包含n 1行 第一行是整數n,表示自然數的個數 第2 n 1每行乙個...
洛谷 P1097 統計數字
題目鏈結 ac 1 include 2 include 3 include 4using namespace std 5 mapct number 6int main 716 for map iterator it ct number.begin it ct number.end it 1720 r...
模擬 洛谷 P1097 統計數字
某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 10 9 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。輸入格式 輸入檔案count.in包含n 1行 第一行是整數n,表示自然數的個數 第2 n 1每行乙個...