цвет чай Ян Юэ

цвет чай Ян Юэ

строка изображения

WA 4 раза дерево сегмент открытое пространство тайна

# include <бит / STDC ++ ч.>
 с использованием  пространства имен STD;
#define maxn 100005
 структура НОД {
    INT х, у;
   BOOL F; /// ?记录左右端点
} N [ 200005 ];
структура дерева {
  INT д;
 INT ленивым; 
} T [maxn * 7 ]; 
вектор < INT > A;
BOOL CMP (НОД а, б НОД) 
{ 
    если (ау == с) вернуть аф == 0 ;
    вернуться ау < по; 
} 
недействительныммагазинный ( INT х) 
{ 
    Т [х << 1 ] .d + = Т [х] .lazy; 
    Т [х << 1 ] .lazy + = Т [х] .lazy; 
    Т [х << 1 | 1 ] .d + = Т [х] .lazy; 
    Т [х << 1 | 1 ] .lazy + = Т [х] .lazy; 
    Т [х] .lazy = 0 ; 
} 
Недействительными Pushup ( INT х) 
{ 
    Т [х] .d = тах (Т [х << 1 ] .d, Т [х << 1 | 1 ] .d); 
} 
недействительнымобновление ( INT л, INT г, INT Л.Л., INT Р.Р., INT v, INT х) 
{ 
    если (л> = LL && г <= р - р) { 
        Т [х] .d + = v; 
        Т [х] .lazy + = v;
        вернуться ; 
    } 
    INT середины = (L + R) >> 1 ; 
    магазинный (х); 
    если (LL <= середина) { 
        обновление (л, середина, LL, р - р, V, X << 1 ); 
    } 
    Если (р - р> середина) { 
        обновление (середина + 1 , г, LL, р - р, V, X <<1 | 1 ); 
    } 
    Pushup (х); 
} 
INT п, к;
INT основных () 
{ 
    зсапЕ ( " % d% d " , & п, & к);
    ИНТ х, у;
    для ( INT I = 0 ; <п; я ++ ) { 
        зсапЕ ( " % d% d " , & х, & у); 
        A.push_back (х); 
        A.push_back (х + к); 
        Н [г] = НОД {х, у, 1 }; 
        Н [я + N] = Nod {х, у + к, 0 }; 
    }
    // сортировки (А, А + п); 
    сортировать (A.begin (), A.end ()); 
    уникальный (A.begin (), A.end ()); 
    сортировки (N, N + 2 * п, CMP);
    INT ANS = 0 ;
    для ( INT I = 0 ; г < 2 * п; я ++ ) {
         INT л = lower_bound (A.begin (), A.end (), N [I] .x) -A.begin () + 1 ;
        INT г = lower_bound (A.begin (), A.end (), N [I] .x + к) -A.begin () + 1 ;
        если (N [I] .f) { 
           обновление ( 1 , длина, L, R, 1 , 1 ); 
        }
        остальное { 
             обновление ( 1 , длина, L, R, - 1 , 1 ); 
        } 
        лет = макс (года T [ 1 ] .D);
        // COUT << ENDL << лет; 
    } 
    COUT << лет << ' \ п ' ; 

}

 

рекомендация

отwww.cnblogs.com/liulex/p/11269249.html