Saltar al contenido

Verifique si se puede generar una matriz donde ningún elemento es la media geométrica de los vecinos

    dados dos enteros pag y ideal para indicar la frecuencia de títulos positivos y negativos, la tarea es efectuar si puede construir una matriz con pag rudimentos positivos y ideal rudimentos negativos con el mismo valía invariable (es sostener, si u Xentonces un impasible pesimista es -X) de modo que ningún medio ambiente sea la media geométrica de sus vecinos.

    ejemplos

    Aporte: P = 3, ideal = 2
    Salida:: CIERTO
    Explicación: es posible crear una matriz : X, X, -X, -X, X

    Aporte: PAG = 4, N = 0
    Salida:: Adulterado

    Enfoque: La sucesivo es la observación para el enfoque:

    Se dice que B es la media geométrica de A y C como B2 = A*C
    desde B2 siempre es positivo, entonces B = X o B = -X y B2 =X2 porque X*X = X2 y (-X)*(-X) = X2

    Por lo tanto, el Predecesor y el Sucesor siempre tienen signo opuesto.
    Entonces la matriz tiene un patrón como {X, X, -X, -X, X, X}

    Con saco en la observación preliminar, la posibilidad se puede derivar como:

    • Si la diferencia entre pag y ideal es veterano que 2 entonces la disposición preliminar no es posible.
    • si la diferencia es exacta 2 que:
      • Si cada uno ocurre en momentos impares, el arreglo no será posible porque habrá un segmento como {X, -X, X} o {-X, X, -X}
      • De lo contrario, el arreglo es posible.
    • Si la diferencia es pequeño que 2entonces el arreglo siempre es posible.

    A continuación se muestra la implementación del enfoque preliminar:

    C++

     

    #include <bits/stdc++.h>

    #define ll long long

    using namespace std;

     

    bool checkGM(int P, int N)

    {

        

        

        if (abs(P - N) >= 3)

            return false;

        if (abs(P - N) == 2) {

            if (P & 1)

                return false;

            else

                return true;

        }

        return true;

    }

     

    int main()

    {

        ll P = 3, N = 2;

     

        

        bool ans = checkGM(P, N);

        if (ans)

            cout << "True";

        else

            cout << "False";

        return 0;

    }

    Complejidad del tiempo: O(1)
    cuarto auxiliar: O(1)

    Su Calificación Nos Ayuda a Mejorar
    Etiquetas: