কম্পিউটার

C++ এ একটি অ্যারের বিটওয়াইজ বা বড় করুন


সমস্যা বিবৃতি

N পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে। অ্যারের সমস্ত উপাদানের বিটওয়াইজ OR একটি কাজ সম্পাদন করে সর্বাধিক করতে হবে। কাজটি হল অ্যারের যেকোনো উপাদানকে একটি প্রদত্ত পূর্ণসংখ্যা x

দিয়ে সর্বাধিক k বার গুণ করা

যদি ইনপুট অ্যারে হয় {4, 3, 6, 1}, k =2 এবং x =3 তাহলে সর্বাধিক মান পাওয়া যাবে 55

অ্যালগরিদম

<পূর্ব>1. একটি অ্যারে উপাদানকে (x^k) দিয়ে গুণ করুন এবং বিটওয়াইজ করুন বা এটিকে বিটওয়াইজ বা পূর্ববর্তী সমস্ত উপাদানের 2 দিয়ে করুন। একটি অ্যারে উপাদানকে বিটওয়াইজ দিয়ে গুন করুন OR পরবর্তী সমস্ত উপাদানের ৩. সমস্ত পুনরাবৃত্তির পরে সর্বাধিক মান ফেরত দিন

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;int getMaxOr(int *arr, int n, int k, int x){ int prefixSum[n + 1]; int suffixSum[n + 1]; int শক্তি =1; জন্য (int i =0; i =0; --i) { প্রত্যয়সাম[i] =প্রত্যয়[i + 1] | arr[i]; } int ফলাফল =INT_MIN; জন্য (int i =0; i 
 

            
  1. C++ এ K নেগেশানের পরে অ্যারের যোগফল সর্বাধিক করুন

  2. C++ এ প্রদত্ত সংখ্যা পর্যন্ত অ্যারের উপাদানগুলিকে সর্বাধিক করুন

  3. C++ এ একটি অ্যারে বিপরীত করুন

  4. C++ ব্যবহার করে একটি অ্যারের মধ্যে একটি সংখ্যার ফ্রিকোয়েন্সি খুঁজুন।