眾數問題 分治演算法

2021-10-11 02:56:50 字數 714 閱讀 8197

給定含有n個元素的多重集合s,每個元素在s**現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數。例如,s=。多重集s的眾數是2,其重數為3。對於給定的由n 個自然數組成的多重集s,計算s的眾數及其重數。如果出現多個眾數,請輸出最小的那個。

input

輸入資料的第1行是多重集s中元素個數n(n<1300000);接下來的n行中,每行有乙個最多含有5位數字的自然數,。

output

輸出資料的第1行給出眾數,第2行是重數。

sample input

612

2235

sample output

2

3

該問題就是求乙個集合最小眾數的問題。

#include

using

namespace std;

intmain()

else

if(max==times[x]

)//如果當前眾數的重數等於元素 x 的出現次數,說明兩個數都是眾數,這時需要選出最小的那個

分治演算法 眾數問題

problem description 給定含有n個元素的多重集合s,每個元素在s 現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數。例如,s 多重集s的眾數是2,其重數為3。對於給定的由n 個自然數組成的多重集s,計算s的眾數及其重數。如果出現多個眾數,請輸出最小的那個。input 輸入...

分治演算法 眾數問題

給定含有 n 個元素的多重集合 s,每個元素在 s 現的次數稱為該元素的重數。多重 集 s 中重數最大的元素稱為眾數。例如,s 多重集 s 的眾數是 2,其重數為 3。對於給定的由 n 個自然數組成的多重集 s,程式設計計算 s 的眾數及其重數。輸入資料由檔名為 input.txt 的文字檔案提供。...

分治演算法解決眾數問題

題目 給定含有n個元素的多重集合s,每個元素在s 現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數,如s 多重集s的眾數是2,其重數為3。分析 include using namespace std define m 100 int a m int num,val,n 重數,眾數,個數 v...