কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: বাইনারি স্ট্রিং কেনার জন্য ন্যূনতম কয়েন

c0, c1, h এবং বাইনারি স্ট্রিং S দেওয়া আছে। বিট ফ্লিপ করার খরচ h। ০ কেনার খরচ c0, ১ কেনার খরচ c1। স্ট্রিং কেনার ন্যূনতম খরচ বের করুন।

উদাহরণ

c0=10, c1=100, h=1, S="01010" → আউটপুট: ৫২

২য় ও ৪র্থ বিট ফ্লিপ (খরচ ২), স্ট্রিং "00000"। ৫×১০=৫০। মোট ৫২।

সমাধানের ধাপসমূহ

প্রতিটি বিটের জন্য: '0' হলে min(c0, c1+h), '1' হলে min(c0+h, c1) যোগ করুন।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

int solve(int c0, int c1, int h, string S) { 
    int k = 0, n = S.size(); 
    for (int i = 0; i < n; i++) { 
        if (S[i] == '0') k += min(c0, c1 + h); 
        else k += min(c0 + h, c1); 
    } 
    return k; 
} 

int main() { 
    int c0 = 10, c1 = 100, h = 1; 
    string S = "01010"; 
    cout << solve(c0, c1, h, S) << endl; 
    return 0; 
}

ইনপুট

10, 100, 1, "01010"

আউটপুট

52
  1. C++-এ বাইনারি ট্রির ন্যূনতম গভীরতা খুঁজুন

  2. C++-এ বাইনারি ট্রিতে সর্বোচ্চ ও ন্যূনতম মান বের করুন

  3. সি++-এ n কে ০ করার ন্যূনতম অপারেশন সংখ্যা গণনা

  4. সি++-এ দুটি বাইনারি স্ট্রিং যোগ করার প্রোগ্রাম