LCM Caminhada

ligações Tópico: https://vjudge.net/contest/362170#problem/F

 

Sujeito ao efeito:

Para dizer a final é (ex, ey), pedir-lhe o número de ponto de partida possível (se o ponto de partida é (x, y), então você vai para o próximo ponto é (x + z, y) ou (x, y + z) z = lcm (x, y))

 

A idéia:

blog de Referência: https://blog.csdn.net/yuzhiwei1995/article/details/51100389

 

 

LL GCD (LL um, LL b) { 
    LL t; 
    enquanto (b) { 
        t = b; 
        b = a% b; 
        um = t; 
    } 
    Voltar a; 
} 

Int main () {
     int T; 
    scanf ( " % d " , & T);
    int t = 1 ;
    enquanto (T-- ) { 
        LL a, b; 
        scanf ( " % LLD% LLD " , & um, e b); 
        LL GCD = GCD (a, b); 
        LL m1= A / GCD; 
        LL m2 = b / GCD; 
        LL ans = 1 ;
        enquanto ( 1 ) {
             se (m1 < m2) 
                swap (m1, m2); 
            Se (M1% ( 1 + m2) == 0 ) { 
                M1 = m1 / ( 1 + m2); 
                ans ++ ; 
            } 
            Else 
                pausa ; 
        } 
        Printf ( " Caso #% d:% lld \ n " , t ++ , ans); 
    }
    retornar  0 ; 
}

 

Acho que você gosta

Origin www.cnblogs.com/-Ackerman/p/12508144.html
Recomendado
Clasificación