কম্পিউটার

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


ধরুন, আমাদের একটি গ্রিড দেওয়া হয়েছে যাতে 2টি সারি এবং n কলাম রয়েছে। একটি বোর্ড অন্য বোর্ডের উপর না পড়ে গ্রিডটিকে n বোর্ড দ্বারা আবৃত করতে হবে। এখন, বোর্ডগুলিকে লাল, নীল এবং সবুজের মধ্যে যে কোনও একটি রঙে রঙ করতে হবে। একে অপরের সংলগ্ন দুটি বোর্ড একই রঙ দ্বারা রঙ করা যাবে না এবং প্রয়োজন না হলে, সমস্ত রঙ ব্যবহার করতে হবে না। গ্রিডের কনফিগারেশন অ্যারে 'গ্রিড'-এ দেওয়া হয়, যেখানে গ্রিডের একটি নির্দিষ্ট বোর্ড একই ইংরেজি অক্ষর ব্যবহার করে উপস্থাপন করা হয় এবং বিভিন্ন ইংরেজি অক্ষর ব্যবহার করে বিভিন্ন বোর্ড উপস্থাপন করা হয়। আমাদের খুঁজে বের করতে হবে কত উপায়ে বোর্ডগুলো রঙ করা যায়।

সুতরাং, যদি ইনপুট n =4, grid ={"abbd", "accd"} এর মত হয়, তাহলে আউটপুট হবে 6।

প্রদত্ত মানদণ্ডকে সন্তুষ্ট করে বোর্ডগুলিকে রঙ করার জন্য 6টি ভিন্ন উপায় রয়েছে৷

পদক্ষেপ

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

MODVAL :=10^9 + 7 শুরু করার জন্য একটি অ্যারে সংজ্ঞায়িত করুন i :=0, যখন i উদাহরণ 

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

#include নেমস্পেস ব্যবহার করে std;int solve(int n, vector grid){ int MODVAL =1e9 + 7; ভেক্টরs; জন্য (int i =0; i  tvec(s.size()); যদি (s[0] ==1) tvec[0] =3; অন্য tvec[0] =6; (int i =1; i <(int)s.size(); i++) { যদি (s[i - 1] ==2 &&s[i] ==2) tvec[i] =tvec[i - 1] * 3% মোডভাল; যদি (s[i - 1] ==2 &&s[i] ==1) tvec[i] =tvec[i - 1]; যদি (s[i - 1] ==1 &&s[i] ==2) tvec[i] =tvec[i - 1] * 2% MODVAL; যদি (s[i - 1] ==1 &&s[i] ==1) tvec[i] =tvec[i - 1] * 2% MODVAL; } রিটার্ন tvec[s.size() - 1];}int main() { int n =4; ভেক্টর  grid ={"abbd", "accd"}; cout< 

ইনপুট

4, {"abbd", "accd"}

আউটপুট

6

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

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

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

  4. C++ প্রোগ্রামে N × 3 গ্রিড পেইন্ট করার উপায়ের সংখ্যা