चुनौतियों पर वापस जाएँ
कठिन 0 हल किए गए 0% स्वीकृति

न्यूनतम लिफ्ट यात्राएँ

लोगों को कम से कम भार-सीमित लिफ्ट यात्राओं में समूहित करें।

आप क्या सीखेंगे

  • लोगों के समूह को बिटमास्क से दिखाना
  • हर उपसमुच्चय के लिए सबसे कम सवारी और आख़िरी सवारी का वज़न रखना
  • घातांकी खोज क्षेत्र को चतुराई से संभालना

समस्या

प्रत्येक व्यक्ति को ठीक एक बार यात्रा करनी है। कोई भी समूह एक साथ यात्रा कर सकता है यदि उनके भार का योग क्षमता से अधिक न हो। लोगों को स्वतंत्र रूप से फिर से समूहित किया जा सकता है; उनकी इनपुट क्रम का कोई महत्व नहीं है। यात्राओं की संख्या को न्यूनतम करें।

elevator_rides(weights, capacity) को लागू करें।

इनपुट

weights: प्रत्येक व्यक्ति का भार।

capacity: एक यात्रा में अधिकतम कुल भार।

आउटपुट

न्यूनतम यात्राओं की संख्या लौटाएँ।

सीमाएँ

1 ≤ लोग ≤ 20। 1 ≤ क्षमता ≤ 1,000,000,000। प्रत्येक भार 1 और क्षमता के बीच है।

उदाहरण

उदाहरण 1
इनपुट:
weights = [3, 4, 5]
capacity = 7

अपेक्षित आउटपुट:
expected = 2
इनपुट:
std::vector<long long> weights = {3, 4, 5};
long long capacity = 7;

अपेक्षित आउटपुट:
long long expected = 2;
इनपुट:
long[] weights = new long[] {3, 4, 5};
long capacity = 7;

अपेक्षित आउटपुट:
long expected = 2;

व्याख्या

3 और 4 को एक साथ भेजें और 5 को अलग। कुल भार 12 है, जो 7 की क्षमता वाली एक यात्रा में नहीं आ सकता।

उदाहरण 2
इनपुट:
weights = [2, 2, 2]
capacity = 6

अपेक्षित आउटपुट:
expected = 1
इनपुट:
std::vector<long long> weights = {2, 2, 2};
long long capacity = 6;

अपेक्षित आउटपुट:
long long expected = 1;
इनपुट:
long[] weights = new long[] {2, 2, 2};
long capacity = 6;

अपेक्षित आउटपुट:
long expected = 1;

व्याख्या

तीनों लोग एक साथ आ सकते हैं क्योंकि 2 + 2 + 2 = 6।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

क्योंकि लोगों की संख्या छोटी है, individual rides की बजाय subsets पर विचार करो.

संकेत 2

हर subset के लिए track करो कि कितनी rides लगी हैं और current last ride कितना full है.

संकेत 3

जब दो states में rides की संख्या same हो, तो छोटी current load वाली state को prefer करो.

अपेक्षित जटिलता

समय O(2^n * n), अतिरिक्त स्थान O(2^n)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।