NYOJ 95 眾數問題(STL)

2021-07-22 22:17:34 字數 1109 閱讀 7844

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3 描述

所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,

多重集合s重的重數最大的元素成為眾數。例如:s=,則多重集s的眾數是2,其重數為3。

現在你的任務是:對於給定的由m個自然數組成的多重集s,計算出s的眾數及其重數。

輸入

第一行為n,表示測試資料組數。(n<30)

每組測試的第一行是乙個整數m,表示多重集s中元素的個數為m

接下來的一行中給出m(m<100)個不大於10萬的自然數

(不會出現不同元素出現的次數相同的情況,如:s=)。

輸出每組測試資料輸出一行,包含兩個數,第乙個是眾數,第二個是其重數,中間以空格隔開。

樣例輸入

1

61 2 2 2 3 5

樣例輸出

2 3

思路分析:簡單題,可以用vector儲存出現的每個數,然後進行一次排序,再統計出眾數和出現的次數。 另外一種更快的做法是用map,**如下。

#include #include #include using namespace std;

int main()

sort( vec.begin(), vec.end() );

int modecount = 1;

int mode = vec[0] ;

int count = 1;

for( int i = 0; i < m - 1; i++ )

}else

}printf( "%d %d\n", mode, modecount );

}return 0;

}

用map:

#include #include #include using namespace std;

int main()

}printf( "%d %d\n", mode, modecount );

}return 0;

}

NYOJ 95 眾數問題

時間限制 3000 ms 記憶體限制 65535 kb難度 3 描述 所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s,...

NYOJ 95 眾數問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s...

nyoj95眾數問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s...