時間限制:
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=)。
輸出每組測試資料輸出一行,包含兩個數,第乙個是眾數,第二個是其重數,中間以空格隔開。
樣例輸入
161 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...