ধরুন আমাদের কাছে ইট নামক সংখ্যার একটি তালিকা এবং আরও দুটি মান প্রস্থ এবং উচ্চতা রয়েছে। ইটগুলির প্রতিটি উপাদান একটি ইটের প্রতিনিধিত্ব করে যার দৈর্ঘ্য ইট [i] একক এবং প্রস্থ 1 ইউনিট। আমাদেরকে ইট স্থাপনের উপায় খুঁজে বের করতে হবে যাতে আমরা প্রদত্ত প্রস্থ এবং উচ্চতা সহ ইটগুলির সম্পূর্ণ বিন্যাস পেতে পারি। আমরা ইট পুনঃব্যবহার করতে পারি কিন্তু শুধুমাত্র অনুভূমিকভাবে স্থাপন করা যায়।
সুতরাং, যদি ইনপুটটি ইটের মত হয় =[2, 1] প্রস্থ =3 উচ্চতা =2, তাহলে আউটপুট হবে 9 কারণ −
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- w :=প্রস্থের সমান আকারের একটি তালিকা এবং প্রথম অবস্থানে 1 সন্নিবেশ করান, বাকিগুলি 0
- আমি 0 থেকে প্রস্থের রেঞ্জের জন্য,
- করুন
- যদি w[i] অ-শূন্য হয়, তাহলে
- প্রতিটি x ইটের জন্য, করুন
- যদি i + x <=প্রস্থ, তাহলে
- w[i + x] :=w[i + x] + w[i]
- যদি i + x <=প্রস্থ, তাহলে
- প্রতিটি x ইটের জন্য, করুন
- যদি w[i] অ-শূন্য হয়, তাহলে
- প্রত্যাবর্তন w[প্রস্থ]^উচ্চতা
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(bricks, width, height): w = [1] + [0] * width for i in range(width): if w[i]: for x in bricks: if i + x <= width: w[i + x] += w[i] return w[width] ** height bricks = [2, 1] width = 3 height = 2 print(solve(bricks, width, height))
ইনপুট
[2, 1], 3, 2
আউটপুট
9