কম্পিউটার

C++ এ বহুভুজের ন্যূনতম স্কোর ত্রিভুজ


ধরুন আমাদের একটি মান N আছে, A[0], A[i], ..., A[N-1] লেবেলযুক্ত শীর্ষবিন্দু সহ একটি উত্তল N-পার্শ্বযুক্ত বহুভুজ বিবেচনা করুন। এখন ধরুন আমরা বহুভুজটিকে N-2 ত্রিভুজে ত্রিভুজ করতে চাই। প্রতিটি ত্রিভুজের জন্য, সেই ত্রিভুজের মান হল শীর্ষবিন্দুগুলির লেবেলের গুণফল, এবং ত্রিভুজটির মোট স্কোর হবে ত্রিভুজের সমস্ত N-2 ত্রিভুজের উপর এই মানের সমষ্টি। বহুভুজের কিছু ত্রিভুজ দিয়ে আমরা অর্জন করতে পারি এমন ক্ষুদ্রতম সম্ভাব্য মোট স্কোর আমাদের খুঁজে বের করতে হবে। সুতরাং যদি ইনপুটটি [1,2,3] হয়, তাহলে আউটপুট হবে 6, যেহেতু বহুভুজটি ইতিমধ্যেই ত্রিভুজ করা হয়েছে এবং একমাত্র ত্রিভুজের স্কোর হল 6৷

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

  • 50 x 50 আকারের একটি ম্যাট্রিক্স ডিপি তৈরি করুন, এটি 0

    দিয়ে পূরণ করুন
  • n :=প্রদত্ত অ্যারের আকার

  • l এর জন্য n থেকে n

    পরিসরে
    • i এর জন্য :=0, j :=l – 1, যখন j

      • k এর জন্য i + 1 থেকে j – 1

        পরিসরে
        • যদি dp[i, j] =0 হয়, তাহলে

          • dp[i, j] :=ন্যূনতম inf এবং dp[i, k] + dp[k, j] + A[i] * A[j] * A[k]

        • অন্যথায় dp[i, j] :=ন্যূনতম dp[i,j] এবং dp[i, k] + dp[k, j] + A[i] * A[j] * A[k]

  • রিটার্ন dp[0, n – 1]

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
   class Solution {
   public:
   int minScoreTriangulation(vector<int>& A) {
      lli dp[50][50];
      for(int i = 0; i < 50; i++){
         for(int j = 0; j < 50; j++){
            dp[i][j] = 0;
         }
      }
      int n = A.size();
      for(int l = 3; l <= n; l++){
         for(int i = 0, j = l - 1; j < n;i++, j++){
            for(int k = i + 1; k < j; k++){
               dp[i][j] = min(dp[i][j] == 0?INT_MAX : dp[i][j],
               dp[i][k] + dp[k][j] + A[i] * A[k] * A[j]);
            }
         }
      }
      return dp[0][n - 1];
   }
};
main(){
   vector<int> v1 = {1,2,3};
   Solution ob;
   cout << (ob.minScoreTriangulation(v1));
}

ইনপুট

[1,2,3]

আউটপুট

6

  1. C++ এ দুটি নন-ওভারল্যাপিং ব্যবধানের ন্যূনতম আকার

  2. C++ এ ন্যূনতম স্ট্রিং

  3. C++ এ টিভি শো

  4. C++ এ কাজের সময়সূচীর ন্যূনতম অসুবিধা