高度なアルゴリズム - 半分

以下は、上記のOJを介して被験者のためのコードであります

・例:

件名の説明:

  ファーマージョンはN(2≤N≤10万)のコンパートメントを含む、長い囲いを構築し、これらのキュービクルは、X1、...、XN(10億≤0≤XI)を番号が付けられている。しかし、ジョン室内でのC(2≤C≤N)レイアウトを好きではない牛、家畜の数頭は、彼らが起こるように戦います。牛を維持するためには、お互いを傷つけます。ジョンは、牛にできるだけ大きい任意の二つの牛の間の最小距離を独自の区画を割り当てることを決め、その後、最大最小距離は何であります

コードの実装:

 

1の#include <cstdioを>
 2の#include <iostreamの>
 3の#include <アルゴリズム>
 4  
5  使用 名前空間STD。
6  
7  のconst  int型 N = 1E5 + 3 8  INTがN、M、X [N]。
9  
10インラインブールチェック(INT D)
 11  {
 12      のint牛= 1 13      int型 RGT = X [ 1 ] + D。
14      のためにint型 I = 2 ; iが<= N; ++ I)
15      {
 16          であれば(X [i]が<RGT)続けます17          ++ 牛。
18          RGT = X [i]が+ D。
19      }
 20      リターン牛> = M。
21  }
 22  
23  のint main()の
 24  {
 25      のscanf(" %D%dの"、&​​N、&M)。
26      のためにint型 i = 1 ; iが<= N; ++ I)
 27          のscanf(" %dの"、およびX [I])。
28     ソート(X + 1、X + N + 1 )。
29      INTは L = 0、R = X [N] -x [ 1 ]。
30      一方(L <= r)は
 31      {
 32          INTミッド= L + R >> 1 33          であれば(チェック(MID))L =ミッド+ 1 34           R =半ば1 35      }
 36      のprintf(" %d個の\ n " 、R)。
37      リターン 0 38 }

 

・例二

件名の説明:

  正の整数Aの列の長さnを考えます L配列以上の最大平均長を求めます。

コードの実装:

1の#include <cstdioを>
 2の#include <iostreamの>
 3の#include <CStringの>
 4の#include <アルゴリズム>
 5  
6  使用して 名前空間STD。
7  
8  ダブル [ 100001 ]、B [ 100001 ]和[ 100001 ]。
9  
10  のint main()の
 11  {
 12      INT N、L。
13      のscanf(" %d個の%のD "、&​​N、&L)。
14      のためにint型 I = 1のscanf(++ iは; iが= Nを<)%のLF 、および[I]);
 15      二重 EPS = 1E- 5 ;
 16      ダブル L = -1e6、R = 1E6;
 17      ながら(RL> EPS)
 18      {
 19          ダブルミッド=(L + R)/ 2 20          のためにint型 i = 1 ; iが= Nを<; ++ I)B [i]は[I] = - 半ば、
 21          のためにint型 i = 1 ; iが= Nを<; ++ I)の和[I] =和[I- 1 ] + B [i]は、
 22の         ダブル ANS = - 1E10;
 23          ダブルmin_val = 1E10;
24          のためには、int型 iはL =、iは= Nを<; ++ I)
 25          {
 26              min_val =分(min_val、和[I- L])。
27の              ANS = MAX(ANS、和[I] - min_val)。
28          }
 29          であれば(ANS> = 0)、L = ミッド。
30          他の R = ミッド;
31      }
 32      のprintf(" %dの"INT(R * 1000 ))。
33      リターン 0 ;
34 }

 

おすすめ

転載: www.cnblogs.com/juruohqk/p/10991642.html
おすすめ