洛谷 P1097 統計數字 題解

2022-05-01 04:06:06 字數 1307 閱讀 1968

題目背景

警告:資料可能存在加強

題目描述

某次科研調查時得到了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#include

#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;

}

view code

洛谷 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每行乙個...