কম্পিউটার

একটি গ্রিডে সমান-সংখ্যাযুক্ত কক্ষের সংখ্যা সর্বাধিক করার জন্য অপারেশনের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম


ধরুন, আমাদেরকে h * w মাত্রার একটি গ্রিড দেওয়া হয়েছে। গ্রিডের প্রতিটি কক্ষের একটি নির্দিষ্ট মান নির্ধারিত আছে। আমরা একটি সমান মান থাকার ঘর সর্বাধিক করতে হবে. এটি করার জন্য, আমরা এমন একটি ঘর নির্বাচন করতে পারি যা আগে নির্বাচন করা হয়নি এবং তারপরে বর্তমান ঘরটির মান 1 দ্বারা হ্রাস করতে পারি এবং বর্তমান ঘরের সাথে উল্লম্ব বা অনুভূমিকভাবে অবস্থিত অন্য একটি ঘরের মান 1 দ্বারা বৃদ্ধি করতে পারি। আমরা অপারেশন সংখ্যা এবং বৃদ্ধি এবং হ্রাস অপারেশনের সেল সংখ্যা প্রিন্ট আউট. আউটপুট নিচের বিন্যাসে হবে −

  • অপারেশনের সংখ্যা

  • ১ম (কোষের অবস্থান হ্রাস) - (কোষের অবস্থান বৃদ্ধি)

    ....

  • nম (কোষের অবস্থান হ্রাস) - (কোষের অবস্থান বৃদ্ধি)

সুতরাং, যদি ইনপুটটি h =3, w =3, গ্রিড ={{2, 3, 4}, {2, 0, 1}, {1, 2, 3}} এর মতো হয়, তাহলে আউটপুট হবে

4(0, 1) - (0, 2)(2, 0) - (2, 1)(2, 1) - (2, 2)(0, 2) - (1, 2) 

পদক্ষেপ

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

একটি নতুন অ্যারে ফলাফল সংজ্ঞায়িত করুন যাতে একটি টিপল ফর ইনিশিয়ালাইজ i :=0 থাকে, যখন i 
 0, তারপর:ফলাফলের গ্রিড[i, j] :=গ্রিড[i, j] + tp শেষে tuple(i, j - 1, i, j) ঢোকান যদি গ্রিড[i, j] mod 2 1 এবং j 
 0, তারপর:ফলাফলগ্রিডের শেষে tuple(i - 1, w - 1, i, w - 1) সন্নিবেশ করান [i, w - 1] :=গ্রিড[i, w - 1] + tpif গ্রিড[i, w - 1] মোড 2 1 এর মতো, তারপর:গ্রিড[i, w - 1] :=গ্রিড[i, w - 1] - 1tp :=1Otherwisetp :=0প্রিন্ট (ফলাফলের আকার) শুরু করার জন্য i :=0, যখন i <ফলাফলের আকার, আপডেট (i 1 দ্বারা বৃদ্ধি), do:print('(' + এর প্রথম মান) ফলাফল[i] + ',' + ফলাফলের দ্বিতীয় মান[i] + '- (' + ফলাফলের তৃতীয় মান[i] + ',' + ফলাফলের চতুর্থ মান[i])

উদাহরণ

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

#include নেমস্পেস ব্যবহার করে std;void solve(int h, int w, vector>grid){ vector> ফলাফল; for(int i =0; i 
 0){ result.push_back(make_tuple(i, j-1, i, j)); গ্রিড[i][j] +=tp; } if(গ্রিড[i][j]%2 ==1 &&j 
 0){ result.push_back(make_tuple(i-1, w-1, i, w-1)); গ্রিড[i][w-1] +=tp; } if(গ্রিড[i][w-1]%2 ==1){ গ্রিড[i][w-1] -=1; tp =1; } else tp =0; } cout <<(int)result.size() <(ফলাফল[i]) <<", " < (ফলাফল[i]) <<")" <<" - (" <<পান<2>(ফলাফল[i]) <<", " <<পান<3>(ফলাফল[i]) <<") "; cout <<'\n'; }}int main() { int h =3, w =3; ভেক্টর<ভেক্টর> গ্রিড ={{2, 3, 4}, {2, 0, 1}, {1, 2, 3}}; সমাধান(h, w, grid); রিটার্ন 0;

ইনপুট

3, 3, {{2, 3, 4}, {2, 0, 1}, {1, 2, 3}}

আউটপুট

4(0, 1) - (0, 2)(2, 0) - (2, 1)(2, 1) - (2, 2)(0, 2) - (1, 2)

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

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

  3. একটি গ্রিডের ভিতরে একটি বহুভুজ রয়েছে এমন বাহুর সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

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