Dada una array distinta de enteros arr[] de tamaño N y un entero K , la tarea es contar el número de subconjuntos de tamaño K de la array cuyo producto de elementos se puede representar como a 2 – b 2 . Ejemplos:
Entrada: arr[] = {1, 2, 3} K = 2 Salida: 2 Explicación: Todos los subconjuntos posibles de longitud 2 con sus productos se dan a continuación: {1, 2} = 2 {2, 3} = 6 {1 , 3} = 3 Dado que solo 3 se puede expresar como (2 2 – 1 2 , por lo tanto, solo existe uno de esos subconjuntos. Entrada: arr[] = {2, 5, 6} K = 2 Salida: 2 Explicación: Todas las posibles subsecuencias contiguas con sus productos dados a continuación: {2, 5} = 10 {2, 6} = 12 {5, 6} = 30 Dado que solo 12 se puede expresar como (4 2 – 2 2 ), solo uno de esos subconjunto existe.
Acercarse:
- Genere todos los subconjuntos de tamaño K .
- Calcular los productos de todos los subconjuntos .
- Un número puede representarse como la diferencia de cuadrados de dos números solo si es impar o divisible por 4 .
- Por lo tanto, cuente todos los subconjuntos con un producto que satisfaga esta condición.
A continuación se muestra la implementación del enfoque anterior:
Python3
# Python3 implementation of the approach import itertools # Function to return the # Count of required sub-sequences def count_seq(arr, n, k): # ans is Count variable ans = 0 for seq in itertools.combinations(arr, k): # product of seq pro = 1 for ele in seq: pro *= ele # checking form of a2-b2 if ((pro % 4) != 2): ans += 1 return ans # Driver code if __name__ == "__main__": arr = [2, 5, 6] n = len(arr) k = 2 print(count_seq(arr, n, k))
1
Publicación traducida automáticamente
Artículo escrito por deepanshu_rustagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA