কম্পিউটার

জোড়ার সর্বোচ্চ দৈর্ঘ্যের চেইন


পেয়ারের একটি চেইন দেওয়া আছে। প্রতিটি জোড়ায়, দুটি পূর্ণসংখ্যা আছে এবং প্রথম পূর্ণসংখ্যা সর্বদা ছোট, এবং দ্বিতীয়টি বড়, একই নিয়ম চেইন নির্মাণের জন্যও প্রয়োগ করা যেতে পারে। একটি জোড়ার পরে একটি জোড়া (x, y) যোগ করা যেতে পারে (p, q), শুধুমাত্র যদি q

এই সমস্যাটি সমাধান করার জন্য, প্রথমে, আমাদের প্রথম উপাদানের ক্রমবর্ধমান ক্রম অনুসারে প্রদত্ত জোড়াগুলিকে সাজাতে হবে। এর পরে, আমরা একটি জোড়ার দ্বিতীয় উপাদানটিকে পরের জুটির প্রথম উপাদানের সাথে তুলনা করব।

ইনপুট এবং আউটপুট

Input:
A chain of number pairs. {(5, 24), (15, 25), (27, 40), (50, 60)}
Output:
Largest length of the chain as given criteria. Here the length is 3.

অ্যালগরিদম

maxChainLength(arr, n)

চেইনের প্রতিটি উপাদানে দুটি উপাদান a এবং b

থাকবে

ইনপুট - জোড়ার অ্যারে, অ্যারের আইটেমের সংখ্যা।

আউটপুট - সর্বোচ্চ দৈর্ঘ্য।

Begin
   define maxChainLen array of size n, and fill with 1
   max := 0

   for i := 1 to n, do
      for j := 0 to i-1, do
         if arr[i].a > arr[j].b and maxChainLen[i] < maxChainLen[j] + 1
            maxChainLen[i] := maxChainLen[j] + 1
      done
   done

   max := maximum length in maxChainLen array
   return max
End

উদাহরণ

#include<iostream>
#include<algorithm>
using namespace std;

struct numPair {    //define pair as structure
   int a;
   int b;
};

int maxChainLength(numPair arr[], int n) {
   int max = 0;
   int *maxChainLen = new int[n];    //create array of size n

   for (int i = 0; i < n; i++ )    //Initialize Max Chain length values for all indexes
      maxChainLen[i] = 1;

   for (int i = 1; i < n; i++ )
      for (int j = 0; j < i; j++ )
         if ( arr[i].a > arr[j].b && maxChainLen[i] < maxChainLen[j] + 1)

            maxChainLen[i] = maxChainLen[j] + 1;

   // maxChainLen[i] now holds the max chain length ending with pair i

   for (int i = 0; i < n; i++ )
      if ( max < maxChainLen[i] )
         max = maxChainLen[i];    //find maximum among all chain length values
   delete[] maxChainLen;    //deallocate memory
   return max;
}

int main() {
   struct numPair arr[] = {{5, 24},{15, 25},{27, 40},{50, 60}};
   int n = 4;
   cout << "Length of maximum size chain is " << maxChainLength(arr, n);
}

আউটপুট

Length of maximum size chain is 3

  1. সর্বাধিক জোড় দৈর্ঘ্যের সাব-স্ট্রিং যা C++ এ একটি প্যালিনড্রোমের স্থানান্তর

  2. C++ এ L দৈর্ঘ্যের স্ট্রিং এর জাদুকরী জোড়ার সংখ্যা খুঁজুন।

  3. C++ এ পণ্যের সমান LCM সহ সর্বাধিক দৈর্ঘ্যের সাবয়ারে

  4. C++ এ জোড়ার সর্বোচ্চ দৈর্ঘ্যের চেইন