কম্পিউটার

একটি ম্যাট্রিক্স থেকে সাবমেট্রিসের সংখ্যা খুঁজে বের করার প্রোগ্রাম যেখানে উপাদানগুলির যোগফল C++ এ একটি নির্দিষ্ট মানের সমান


ধরুন আমাদের একটি ম্যাট্রিক্স দেওয়া হয়েছে যাতে পূর্ণসংখ্যার মান রয়েছে। আমাদের ম্যাট্রিক্স থেকে সাবম্যাট্রিক্সগুলি খুঁজে বের করতে হবে যেখানে ম্যাট্রিক্সের উপাদানগুলির যোগফল একটি প্রদত্ত লক্ষ্য যোগফল মানের সমান। আমরা সাবমেট্রিসের সংখ্যা ফেরত দিই।

সুতরাং, যদি ইনপুট মত হয়

0 0 1 0
0 1 0 0
0 1 0 1
1 1 0 1

এবং লক্ষ্য =5, তাহলে আউটপুট হবে 3।

সাবমেট্রিসের সংখ্যা যার উপাদানের যোগফল 6 এর সমান 2।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n :=মাদুরের আকার
  • m :=(যদি n 0 এর সমান হয়, তাহলে 0, অন্যথায় মাদুরের আকার[0])
  • যদি m> n হয়, তাহলে −
    • m x n মাত্রার একটি 2D অ্যারে ট্রান্সপোজ সংজ্ঞায়িত করুন
    • আরম্ভ করার জন্য i :=0, যখন i করুন
    • আরম্ভ করার জন্য j :=0, যখন j করুন
    • ট্রান্সপোজ[j, i] :=ম্যাট[i, j]
  • রিটার্ন সলভ (ট্রান্সপোজ, sumTarget)
  • উত্তর :=0
  • আরম্ভ করার জন্য p :=0, যখন p করুন
  • একটি অ্যারে অ্যারের সংজ্ঞা দিন
  • আরম্ভ করার জন্য q :=p, যখন q করুন
  • আরম্ভ করার জন্য i :=0, যখন i করুন
  • arr[i] :=arr[i] + mat[i, q]
  • একটি মানচিত্র pcnt সংজ্ঞায়িত করুন যার মধ্যে কী-মান জোড়া রয়েছে {0, 1
  • pref :=0
  • আরম্ভ করার জন্য i :=0, যখন i করুন
  • pref :=pref + arr[i]
  • tmp :=অবস্থান যেখানে (pref - sumTarget) pcnt এ আছে
  • যদি tmp pcnt-এর শেষ অবস্থানের সমান না হয়, তাহলে −
    • (pcnt[pref] 1 দ্বারা বাড়ান)
  • উত্তর ফেরত দিন
  • উদাহরণ

    আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    #includeনেমস্পেস ব্যবহার করে std;int solve(vector>&mat, int sumTarget) { int n =mat.size(); int m =n ==0? 0 :মাদুর[0]. আকার(); যদি (m> n) { ভেক্টর<ভেক্টর> ট্রান্সপোজ(m, ভেক্টর(n)); (int i =0; i  arr(n); (int q =p; q  pcnt ={{0, 1}}; int pref =0; জন্য (int i =0; i সেকেন্ড; pcnt[pref]++; } } } উত্তর দিন;} int main() { ভেক্টর<ভেক্টর> ম্যাট ={{0, 0, 1, 0}, {0, 1, 0, 0}, {0, 1, 0, 1 }, {1, 1, 0, 1}};cout< 

    ইনপুট

    <প্রে>{{0, 0, 1, 0}, {0, 1, 0, 0}, {0, 1, 0, 1}, {1, 1, 0, 1}}, 5

    আউটপুট

    3

    1. একটি গ্রিডে আলোকিত কোষের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

    2. একটি প্রদত্ত গ্রাফে সেতুর প্রান্তের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

    3. একটি পাথ তৈরি করতে একটি গ্রিডে ব্লক করার জন্য সেলের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

    4. পাইথনে সাব-ট্রির নোড মানের সমষ্টি থেকে ন্যূনতম মান বের করার প্রোগ্রাম