Ici, nous verrons un problème. Nous avons un tableau binaire. Il comporte n éléments. Chaque élément vaut 0 ou 1. Initialement, tous les éléments sont 0. Nous allons maintenant fournir la commande M. Chaque commande contiendra un index de début et de fin. Donc command(a, b) signifie que la commande sera appliquée de l’élément en position a à l’élément en position b. Cette commande fera basculer la valeur. Il passe donc de l'index ath à l'index bth. La question est simple. Examinez les algorithmes pour vous faire une idée.
Begin for each element e from index a to b, do toggle the e and place into arr at its position. done End
#include <iostream> using namespace std; void toggleCommand(int arr[], int a, int b){ for(int i = a; i <= b; i++){ arr[i] ^= 1; //toggle each bit in range a to b } } void display(int arr[], int n){ for(int i = 0; i<n; i++){ cout << arr[i] << " "; } cout << endl; } int main() { int arr[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int n = sizeof(arr)/sizeof(arr[0]); display(arr, n); toggleCommand(arr, 3, 6); toggleCommand(arr, 8, 10); toggleCommand(arr, 2, 7); display(arr, n); }
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!