codeforces - submatriz egocéntrica

  1. Subarreglos egocéntricos

entrada estándar entrada
salida salida estándar
Tiene una matriz a que consta de n números enteros positivos y un número entero k.

A un subarreglo se le llama subarreglo egocéntrico si la diferencia entre los elementos máximo y mínimo del subarreglo es igual a k.

Recuerde que un subarreglo es un segmento contiguo de elementos del arreglo original, en orden.

Por ejemplo, si a = [5,4,1,2,3,6] yk = 3, entonces [4,1], [4,1,2,3] y [3,6] son ​​subarreglos egocéntricos , mientras que [5,4,1,2], [4,1,2,3,6] y [5] no lo son.

Su tarea es encontrar el número de subarreglos egocéntricos en el arreglo.

Entrada
La primera línea de entrada contiene dos enteros separados por espacios n (1 <= n <= 100) y k (1 <= k <= 109): la longitud de la matriz y el número para encontrar si la diferencia es igual a, respectivamente.

La siguiente línea consta de n enteros separados por espacios: los elementos de la matriz (1 <= ai <= 109).

Salida
Salida el número de submatrices egocéntricas de la matriz.

Puntuación
Problema completo: 7 puntos de
traducción:

  1. Límite de tiempo de subcadena egocéntrico por prueba Límite de memoria de 1 segundo por prueba 256 megabytes de entrada Entrada estándar Salida Salida estándar Tiene una matriz a que consta de n enteros positivos y un entero k.
    Si la diferencia entre los elementos más grandes y más pequeños de una submatriz es igual a k, puede llamarla submatriz egocéntrica. Recuerde que la submatriz es un segmento continuo de los elementos de la matriz original.
    Por ejemplo, si a = [5,4,1,2,3,6]
    yk = 3, entonces [4,1,2,3] y [3,6] son ​​subarreglos egocéntricos y [5 , 4,1,2,6] y [5] no lo son.
    Su tarea es encontrar el número de subarreglos egocéntricos en el arreglo. La primera línea de entrada contiene dos números enteros n (1 <= n <= 100) y k
    (1 <= k <= 109) separados por espacios : la longitud de la matriz y el número para encontrar si la diferencia es igual.
    La siguiente línea consta de n enteros separados por espacios: elementos de matriz (1 <= ai <= 109). Muestra el número de submatrices autocentradas en la matriz de salida. Puntuación
    Preguntas completas: 7 puntos

Ideas:

Se trata de un bucle de tres capas. La capa exterior usa el tamaño para controlar la escala del problema. La segunda capa controla el inicio. La tercera capa encuentra los subproblemas actuales máximo y mínimo. Al final de la tercera capa, se juzga si max-min == k. ans ++;
finalmente salida ans!

código ac (7 puntos) :

#include<stdio.h>

int main()
{
    
    
    int n,k;
    scanf("%d %d",&n,&k);
    int a[n];

    for(int i=0;i<n;i++){
    
    
        scanf("%d",&a[i]);
    }
    int ans=0;
    int size;
    for(size=2;size<=n;size++){
    
    
        for(int i=0;i<=n-size;i++){
    
    
            int min=a[i];
            int max=a[i];
            for(int j=i;j<i+size;j++){
    
    
                if(max<a[j])max=a[j];
                if(min>a[j])min=a[j];
            }
            if(max-min==k)ans++;
        }
    }
    printf("%d\n",ans);
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/timelessx_x/article/details/111770072
Recomendado
Clasificación