【bzoj1135] Lyzを

二部グラフとみなすことができ、それは左半分のための完全な一致があるか否かが判定される
ホールの定理によれば、各サブセットの点の数の左半分が接続されている場合にのみとする超える場合、サブセットのサイズが
決定される複雑肯定爆発貪欲であることができる、特定の間隔、すなわち、任意の区間[L、R]のために、$ \ sum_ {i = L}満たさなければならない選択されている ^ {R}(\ル(R-L + 1 + D)のk $愛AIは$ \ sum_ {i = L}与えるために低減される靴のI数)の数を表し ^ {R}(AI-k)を\ルKD $、KD 所定値はそう$ AI-K $の等価性を維持するために、ありますツリーラインへの最大電界と、

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  の#define N 1000005
 4  の#defineっ長い長い
 5  の#define L(K << 1)
 6  の#define R(L + 1)
 7  の#define中間(L + R >> 1)
 8  int型N、M、X、 Y;
9  LL kを、LS [N]、RS [N]、合計[N]、F [N]。
10  ボイド更新(int型 K、int型の L、int型の R、int型のx、int型のY){
 11      であれば(L == R){
 12         LS [K] + = Y。
13の          RS [K] + = Y。
14          和[K] + = Y。
15          F [K] + = Y。
16          リターン;
17      }
 18      であれば(X <= MID)更新(L、L、中、X、Y)
19      他の更新(R、中間+ 1 、R、X、Y)。
20の      LS [K] = MAX(LS [L]、和[L] + LS [R])。
21の      RS [K] = MAX(RS [R]、和[R] + RS [L])。
22      和[K] =和[L] + 和[R]。
23      F [K] = MAX(MAX(F [L]、[R])、RS [L] + F LS [R])。
24  }
 25  INTメイン(){
 26      のscanf(" %D%D%D%D "、&​​N、&M、およびX&Y)。
27      のためにint型 i = 1 ; iが<= N; iが++)更新(11、N、I、 - X)を、
28      K = 1LL * X * Y。
29      のためにint型 I = 1 ; I <= M Iは++ ){
 30          のscanf(" %D%dの"、およびX&Y)。
31          更新(11 、nは、X、Y)
32          であれば(F [ 1 ] <= K)のprintf(" TAK \ nを" );
33          他の printf関数(" NIE \ nを" );
34      }
 35 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/PYWBKTDA/p/11730059.html