Dada una array arr que contiene N enteros positivos. Encuentre el recuento de todos los pares posibles cuyo valor XOR bit a bit sea mayor que el valor AND bit a bit
Ejemplos :
Entrada : arr[]={ 12, 4, 15}
Salida : 2
Explicación : 12 ^ 4 = 8, 12 y 4 = 4. entonces 12 ^ 4 > 12 y 4
4 ^ 15 = 11, 4 y 15 = 4. entonces 4 ^ 15 > 4 y 15 .
Entonces, los dos anteriores son pares válidos { 12, 4 }, {4, 15} .Entrada: arr[] = { 1, 1, 3, 3 }
Salida: 4
Enfoque: consulte la siguiente idea para el enfoque para resolver este problema:
Sabemos que, para un arreglo de longitud N, habrá un total de (N*(N-1))/2 pares.
Por lo tanto, verifique cada par y aumente la cuenta en uno si un par satisface la condición dada en la pregunta.
Siga los pasos a continuación para resolver este problema:
- Verifique para cada par si el valor XOR en bits es mayor que AND en bits o no.
- Si es así, aumente el conteo
- Devuelve la cuenta.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to Count number of pairs // whose bit wise XOR value is greater // than bit wise AND value #include <bits/stdc++.h> using namespace std; // Function that return count of pairs // whose bitwise xor >= bitwise long long valid_pairs(int arr[], int N) { long long cnt = 0; // check for all possible pairs for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { if ((arr[i] ^ arr[j]) >= (arr[i] & arr[j])) cnt++; } } return cnt; } // Driver Code int main() { int N = 3; int arr[] = { 12, 4, 15 }; cout << valid_pairs(arr, N); }
Java
// Java program to Count number of pairs // whose bit wise XOR value is greater // than bit wise AND value import java.io.*; class GFG { // Function that return count of pairs // whose bitwise xor >= bitwise public static long valid_pairs(int arr[], int N) { long cnt = 0; // check for all possible pairs for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { if ((arr[i] ^ arr[j]) >= (arr[i] & arr[j])) cnt++; } } return cnt; } // Driver code public static void main(String[] args) { int N = 3; int arr[] = { 12, 4, 15 }; System.out.print(valid_pairs(arr, N)); } } // This code is contributed by Rohit Pradhan.
Python3
# python3 program to Count number of pairs # whose bit wise XOR value is greater # than bit wise AND value # Function that return count of pairs # whose bitwise xor >= bitwise def valid_pairs(arr, N): cnt = 0 # check for all possible pairs for i in range(0, N): for j in range(i + 1, N): if ((arr[i] ^ arr[j]) >= (arr[i] & arr[j])): cnt += 1 return cnt # Driver Code if __name__ == "__main__": N = 3 arr = [12, 4, 15] print(valid_pairs(arr, N)) # This code is contributed by rakeshsahni
C#
// C# program to Count number of pairs // whose bit wise XOR value is greater // than bit wise AND value using System; class GFG { // Function that return count of pairs // whose bitwise xor >= bitwise public static long valid_pairs(int[] arr, int N) { long cnt = 0; // check for all possible pairs for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { if ((arr[i] ^ arr[j]) >= (arr[i] & arr[j])) cnt++; } } return cnt; } // Driver code public static void Main(string[] args) { int N = 3; int[] arr = { 12, 4, 15 }; Console.Write(valid_pairs(arr, N)); } } // This code is contributed by ukasp.
Javascript
<script> // JavaScript code for the above approach // Function that return count of pairs // whose bitwise xor >= bitwise function valid_pairs(arr, N) { let cnt = 0; // check for all possible pairs for (let i = 0; i < N; i++) { for (let j = i + 1; j < N; j++) { if ((arr[i] ^ arr[j]) >= (arr[i] & arr[j])) cnt++; } } return cnt; } // Driver Code let N = 3; let arr = [12, 4, 15]; document.write(valid_pairs(arr, N)); // This code is contributed by Potta Lokesh </script>
2
Complejidad de tiempo : O(N*N)
Espacio auxiliar : O(1)
Publicación traducida automáticamente
Artículo escrito por patilnainesh911 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA