Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

बॉक्स स्टैकिंग समस्या


इस समस्या में अलग-अलग बॉक्स का एक सेट दिया गया है, अलग-अलग बॉक्स के लिए लंबाई, चौड़ाई और चौड़ाई अलग-अलग हो सकती है। हमारा काम इन बक्सों का ढेर ढूंढना है, जिनकी ऊंचाई ज्यादा से ज्यादा हो। हम अपनी इच्छानुसार किसी भी बॉक्स को घुमा सकते हैं। लेकिन बनाए रखने का एक नियम है।

कोई एक बॉक्स को दूसरे बॉक्स पर रख सकता है यदि नीचे वाले बॉक्स की ऊपरी सतह का क्षेत्रफल ऊपर वाले बॉक्स के निचले क्षेत्र से बड़ा है।

इनपुट और आउटपुट

इनपुट:बॉक्स की एक सूची दी गई है। प्रत्येक बॉक्स को (लंबाई, चौड़ाई, ऊंचाई) द्वारा दर्शाया जाता है। {(4, 6, 7), (1, 2, 3), (4, 5, 6), (10, 12, 32)} आउटपुट:अधिकतम बॉक्स स्टैक की संभावित ऊंचाई है:60

एल्गोरिदम

maxHeight(boxList, n)

इनपुट - विभिन्न बक्सों की सूची, बक्सों की संख्या।

आउटपुट - बक्सों को ढेर करके अधिकतम ऊँचाई पाई जाती है।

<पूर्व>आकार 3n के रोटेशन ऐरे रोट को परिभाषित करना शुरू करें। अनुक्रमणिका :=0 सभी बक्सों के लिए मैं, boxList में, रोट करता हूँ [index].len :=boxList[i].len Rot[index].hei :=max of boxList[i].hei और boxList[i]। ब्रे रोट [इंडेक्स]। ब्रे:=न्यूनतम बॉक्सलिस्ट [i]। हेई और बॉक्सलिस्ट [i] .ब्रे इंडेक्स:=इंडेक्स + 1 रोट [इंडेक्स]। लेन:=बॉक्सलिस्ट [i]। ब्रे रोट [इंडेक्स]। हेई :=अधिकतम बॉक्सलिस्ट [i] .len और बॉक्सलिस्ट [i]। हेई रोट [इंडेक्स]। ब्रे:=न्यूनतम बॉक्सलिस्ट [i]। लेन और बॉक्सलिस्ट [i]। हेई इंडेक्स:=इंडेक्स + 1 रोट [इंडेक्स] .len :=boxList[i].hei Rot[index].hei :=अधिकतम boxList[i].len और boxList[i].bre Rot[index].bre :=न्यूनतम boxList[i].len और boxList[i].bre अनुक्रमणिका:=अनुक्रमणिका + 1 n:=3n सड़ांध सूची को क्रमबद्ध करें i के लिए maxHeightTemp सरणी को परिभाषित करें:=1 से n-1, j के लिए करें:=0 से i-1, सड़ने पर करें [i] .bre

उदाहरण

#शामिल करें x :y;}int max (int x, int y) {रिटर्न (x> y)? x:y;}बूल तुलना (बॉक्स b1, बॉक्स b2) {रिटर्न b1.height> b2.height; // ऊंचाई के अवरोही क्रम के रूप में बॉक्स को सॉर्ट करने के लिए} इंट मैक्सहाइट (बॉक्स बॉक्सलिस्ट [], इंट एन) {बॉक्स रोटेशन [3 * एन]; // एक बॉक्स को 3 प्रकार के रूप में घुमाया जा सकता है, इसलिए 3n रोटेशन की संख्या है int अनुक्रमणिका =0; के लिए (int i =0; i  

आउटपुट

बॉक्स स्टैक की अधिकतम संभव ऊंचाई है:60

  1. एम-रंग समस्या

    इस समस्या में एक अप्रत्यक्ष ग्राफ दिया गया है। एम रंग भी प्रदान किए गए हैं। समस्या यह पता लगाने की है कि क्या m अलग-अलग रंगों के साथ नोड्स असाइन करना संभव है, जैसे कि ग्राफ़ के दो आसन्न कोने एक ही रंग के नहीं हैं। यदि समाधान मौजूद है, तो प्रदर्शित करें कि कौन सा रंग किस शीर्ष पर दिया गया है। शीर्ष

  1. सांप और सीढ़ी की समस्या

    हम प्रसिद्ध खेल सांप और सीढ़ी के बारे में जानते हैं। इस गेम में कुछ कमरे बोर्ड पर मौजूद होते हैं, जिसमें रूम नंबर होता है। कुछ कमरे सीढ़ी या सांप से जुड़े हुए हैं। जब हमें सीढ़ी मिल जाती है, तो हम कुछ कमरों तक चढ़ सकते हैं और बिना क्रम में आगे बढ़े गंतव्य के करीब पहुंच सकते हैं। इसी तरह, जब हमें कोई

  1. वर्टेक्स कवर समस्या

    अप्रत्यक्ष ग्राफ़ के लिए, शीर्ष आवरण शीर्षों का एक उपसमुच्चय होता है, जहां ग्राफ़ के प्रत्येक किनारे (u, v) के लिए या तो u या v सेट में होता है। बाइनरी ट्री का उपयोग करके, हम आसानी से वर्टेक्स कवर की समस्या को हल कर सकते हैं। इस समस्या को दो उप-समस्याओं में विभाजित किया जा सकता है। जब जड़ शीर्ष आव