Dalam artikel ini kita diberi masalah di mana diberikan susunan integer tugas kita adalah untuk mencari bitwise DAN julat yang diberikan cth. Jika kerumitan masa kami tidak cukup baik, kami cuba membangunkan kaedah yang lebih baik.
Kaedah Brute Force
Contoh
Input: arr[ ] = {1, 3, 1, 2, 32, 3, 3, 4, 4}, q[ ] = {{0, 1}, {3, 5}} Output: 1 0 0 1 AND 31 = 1 23 AND 34 AND 4 = 00 Input: arr[ ] = {1, 2, 3, 4, 510, 10 , 12, 16, 8}, q[ ] = {{0, 42}, {1, 33, 4}} Output: 0 8 0
#include <bits/stdc++.h> using namespace std; int main() { int ARR[] = { 10, 10 , 12, 16, 8 }; int n = sizeof(ARR) / sizeof(int); // size of our array int queries[][2] = { {0, 2}, {3, 4} }; // given queries int q = sizeof(queries) / sizeof(queries[0]); // number of queries for(int i = 0; i < q; i++) { // traversing through all the queries long ans = 1LL << 32; ans -= 1; // making all the bits of ans 1 for(int j = queries[i][0]; j <= queries[i][1]; j++) // traversing through the range ans &= ARR[j]; // calculating the answer cout << ans << "\n"; } return 0; }
, dengan N ialah saiz tatasusunan dan Q ialah bilangan pertanyaan yang kami ada sekarang, anda dapat melihat bahawa kerumitan ini tidak membawa kepada kekangan yang lebih tinggi, jadi kami akan menghasilkan kaedah yang lebih pantas untuk masalah ini. Kaedah yang cekap
Penjelasan kod di atas
Dalam artikel ini kami menyelesaikan masalah menghitung semua pertanyaan bitwise DAN dalam julat indeks tertentu [L, R] dalam kumpulan besar. Kami juga mempelajari program C++ untuk menyelesaikan masalah ini dan cara lengkap untuk menyelesaikan masalah ini (biasa dan cekap). Kita boleh menulis program yang sama dalam bahasa lain seperti C, java, python dan bahasa lain. Kami berharap artikel ini dapat membantu anda.
Atas ialah kandungan terperinci Menggunakan C++, terjemah yang berikut ke dalam bahasa Cina: Pertanyaan untuk bitwise DAN dalam julat indeks tatasusunan yang diberikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!