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

৪ কি-বোর্ড দিয়ে সর্বোচ্চ 'A' টাইপ করা C++-এ

সমস্যা বিবরণ

কীবোর্ডে ৪টি কী আছে: 'A', 'Ctrl+A' (সিলেক্ট অল), 'Ctrl+C' (কপি), 'Ctrl+V' (পেস্ট)। N সংখ্যক কী-স্ট্রোক দিয়ে সর্বোচ্চ কতটি 'A' প্রিন্ট করা যায় তা বের করতে হবে।

উদাহরণ

N = 7 → আউটপুট: ৯

সিকোয়েন্স: A, A, A, Ctrl+A, Ctrl+C, Ctrl+V, Ctrl+V → ৩ × ৩ = ৯

অ্যালগরিদম: ডাইনামিক প্রোগ্রামিং

dp[n] = n স্ট্রোক দিয়ে সর্বোচ্চ 'A'।

  • বেস: dp[1..6] = 1..6 (কপি-পেস্ট দিয়ে লাভ নেই)।
  • n >= 7 এর জন্য: ব্রেকপয়েন্ট b (৩ থেকে n-3 পর্যন্ত) চুনে:
    • b স্ট্রোক দিয়ে dp[b] 'A' তৈরি করুন।
    • বাকি n - b স্ট্রোক: ২টি স্ট্রোক Ctrl+A, Ctrl+C খাবে, বাকি n - b - 2 টি Ctrl+V।
    • টোটাল = dp[b] * (n - b - 1)।
  • সর্বোচ্চ মান নিন।

C++ বাস্তবায়ন

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

int maxA(int keystrokes) {
    if (keystrokes <= 6) return keystrokes;
    vector<int> dp(keystrokes + 1);
    for (int i = 1; i <= 6; i++) dp[i] = i;
    for (int n = 7; n <= keystrokes; n++) {
        dp[n] = 0;
        for (int b = n - 3; b >= 1; b--) {
            int curr = (n - b - 1) * dp[b];
            dp[n] = max(dp[n], curr);
        }
    }
    return dp[keystrokes];
}

int main() {
    int n = 7;
    cout << maxA(n); // আউটপুট: 9
    return 0;
}

ইনপুট ও আউটপুট

ইনপুটআউটপুট
79

জটিলতা বিশ্লেষণ

  • সময় জটিলতা: O(N²) — N = কী-স্ট্রোক সংখ্যা।
  • স্থান জটিলতা: O(N) — DP অ্যারে।
  1. Keychron ওয়ায়ারলেস মেকানিক্যাল কীবোর্ড রিভিউ

  2. আপনার কম্পিউটার কিবোর্ডের ৬টি মূল কী টাইপ আবিষ্কার করুন

  3. macOS-এ Fn কী রিম্যাপিং: ধাপে ধাপে গাইড

  4. গেমিং কীবোর্ডের কী সংখ্যা বোঝা: ফর্ম ফ্যাক্টর এবং লেআউট গাইড