[分割統治アルゴリズム]公共の問題の数

公共問題の数

http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/3015/pid/1710.html

制限時間:2000ミリ秒メモリ制限:65536 KiBの
 

問題の説明

Sを含むn個の要素を設定するための複数のセットは、Sの各要素の出現数は、要素の多重と呼ばれています。複数のモードとして知られている重元素にSの最大数を設定します。例えば、S = {1,2,2,2,3,5}。複数のセットモードSが2であり、重量は3です。モードからなるn複数の自然数の所定のセットSおよび重量の数Sを算出します。複数のモードは、最小の出力を表示された場合。

入力

入力データ線1は、要素の数であるN(N <130万)多重集合S、次のn行、5桁の自然数の最大値を含む各行。

出力

アウトスタンディング数の最初の行の出力データは、行番号2は重量です。

サンプル入力

6 
1 
2 
2 
2 
3 
5

サンプル出力

2 
3

ソリューション:

iは入力データを表す配列編曲[I]を、使用し、編曲[i]は、iの数が表示され表します。最初の入力のサイクル及びモードを特定し、Iを決定するための第2のサイクルは、最小を見つけます。

注意事項:

インデックス間の対応があるので、私とあなたはソートを呼び出す場合は、この時点で編曲[i]は、[i]はこの対応を破壊します。別の解決策は、編曲[Tの[I]、並べ替えを使用して()ソートT [I]を使用することです。


出典:

1の#include <iostreamの>
 2の#include <アルゴリズム>
 3  使用して 名前空間STDを、
4  int型 ARR [ 100005 ] = { 0 }。
5  
6  BOOL CMP(int型 I、INT J){
 7      リターン I> J。
8  }
 9  のint main()の
 10  {
 11      int型のカウント= 0 ;
12      INT MostElem = 0 13      のint NUM;
14      INTELEM;
 15  
16      STD CIN :: >> NUM;
 17      
18である 
。19      // 第一の入力と計算
20である     ためint型 I = 0 ; IはNUMを<; Iは++ ){
 21は          STD CIN :: >> ELEM;
 22は、          ARR [ELEM] ++ ;
 23で         IF(ARR [Elemの]> 数){
 24              カウント= ARR [Elemの];
 25          }
 26である     }
 27  
28      // 直接呼び出しソートする場合は、[i]はiとARRとの対応関係を破壊します。
29      // スクラッチから再び直接再反復
30の     int型温度= 100000 ;
31      のためには、int型 i = 0 ; I < 100000 ; iは++ ){
 32          であれば(ARR [I] ==カウント&& iが< TEMP){
 33              TEMP = I。
34          }
 35      }
 36  
37      // 直接输出
38      COUT << TEMP << ENDL << <<カウントENDLと、
39  
40  
41      戻り 0 ;
42 }

 

おすすめ

転載: www.cnblogs.com/onetrainee/p/11665466.html