[Функция Мёбиуса] [Включение и исключение] BZOJ 2440 квадрата

https://www.luogu.org/problem/P4318

анализ

М может быть разделен на два требование [1, M] квадрат числа нефакторного

Очевидно, что репелленты могут быть размещены: квадрат числа -1 числа квадрат простого числа простых чисел от 0 до +2 ......

КИУМ легко найти функцию репеллента Mobius

Линейная половина экрана, чтобы предобусловливание

Обратите внимание, что две точки L, R, средний диапазон может превышать LONGLONG

Окончательная формула:

$ ANS = \ сумма _ {= 1} ^ {\ влево \ lfloor \ SQRT {п} \ право \ rfloor} \ мю (I) \ влево \ lfloor \ гидроразрыва {п} {я ^ 2} \ право \ rfloor $

 

#include <iostream> 
#include <cstdio> 
#include <CMATH>
 с использованием  пространства имен станд; 
ЬурейеЕ долго  долго LL;
Const  INT Inf = 2147483647 ;
Const  INT N = 46341 ;
INT T, K;
INT простой [N], Miu [N], CNT;
BOOL непростого [N]; 

аннулированию Prime () { 
    Miu [ 1 ] = 1 ;
    для ( INT I = 2 ; я <N; я ++ ) {
         еслипростой [++ CNT] = я, Miu [я] = - (непростой [я]!) 1 ;
        для ( INT J = 1 , J <= CNT; j ++ ) {
             если (я * простое [J]> = N) перерыв ; 
            непростой [я * простой [J]] = 1 ;
            если (я% простой [J] == 0 ) { 
                Miu [я * простое [J]] = 0 ;
                перерыв ; 
            } 
            Miu [я * простой [J]] = - 1 * MIU [I]; 
        } 
    } 
} 

BOOL  Check (Л.Л. середине) {
    LL п = SQRT (середина), ANS = 0 ;
    для ( INT I = 1 ; г <= п; я ++) ANS + = 1LL * Miu [я] * (середина / (I * I));
    вернуться анс> = к; 
} 

INT основных () { 
    Prime (); 
    для (Scanf ( " % D " , & T), T; T-- ) { 
        зсапЕ ( " % d " , & к); 
        LL л = 1 , г = Inf, середина, ANS;
        в то время как (л <= г) { 
            середина = 1LL * (L + R) >> 1 ;
            если(Проверка (середина)) ANS = середина, г = середина 1;
            остальной л = середина + 1 ; 
        } 
        Е ( " % LLD \ п " , ANS); 
    } 
}
Просмотр кода

 

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

отwww.cnblogs.com/mastervan/p/11367343.html