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

पायथन में अध्ययन का कुशल तरीका ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास तीन सूचियाँ हैं जिनकी लंबाई समान है: deadlines, credits, और durations। ये कोर्स असाइनमेंट दर्शाते हैं। i-वें असाइनमेंट के लिए deadlines[i] इसकी अंतिम तिथि, credits[i] इसका क्रेडिट, और durations[i] इसे पूरा करने में लगने वाले दिन हैं। एक असाइनमेंट को दूसरे से पहले पूरा करना होगा। हम असाइनमेंट को उसकी देय तिथि के दिन पूरा कर सकते हैं और हम वर्तमान में दिन 0 की शुरुआत में हैं। अधिकतम क्रेडिट ज्ञात करें।

उदाहरण के लिए, deadlines=[7,5,10], credits=[8,7,10], durations=[5,4,10] के लिए आउटपुट 10 होगा।

एल्गोरिदम (DP + डेडलाइन द्वारा सॉर्टिंग)

  • jobs := zip(deadlines, durations, credits) को डेडलाइन के अनुसार सॉर्ट करें
  • dp(i, day) फ़ंक्शन परिभाषित करें:
    • यदि i >= len(jobs), तो 0 वापस करें
    • ans = dp(i+1, day) (छोड़ें)
    • deadline, duration, credit = jobs[i]
    • यदि day + duration - 1 <= deadline, तो ans = max(ans, dp(i+1, day+duration) + credit) (लें)
    • ans वापस करें
  • dp(0, 0) वापस करें

उदाहरण

class Solution:
    def solve(self, deadlines, credits, durations):
        jobs = sorted(zip(deadlines, durations, credits))
        def dp(i=0, day=0):
            if i >= len(jobs): return 0
            ans = dp(i+1, day)
            deadline, duration, credit = jobs[i]
            if day + duration - 1 <= deadline:
                ans = max(ans, dp(i+1, day+duration) + credit)
            return ans
        return dp()

ob = Solution()
deadlines = [7,5,10]
credits = [8,7,10]
durations = [5,4,10]
print(ob.solve(deadlines, credits, durations))

इनपुट

[7, 5, 10], [8, 7, 10], [5, 4, 10]

आउटपुट

10
  1. पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्ष हैं जो 0 से n-1 तक क्रमांकित हैं। ग्राफ अनिर्देशित है और प्रत्येक किनारे का एक भार है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को

  1. - पायथन में करेंसी आर्बिट्रेज ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास करेंसी एक्सचेंज दरों का N x N टेबल है। हमें जांचना है कि क्या ट्रेड का कोई अनुक्रम मौजूद है जिससे किसी करेंसी की कुछ राशि A से शुरू करके उसी करेंसी की अधिक राशि प्राप्त की जा सके। कोई लेनदेन लागत नहीं है और हम आंशिक मात्राओं में भी ट्रेड कर सकते हैं। उदाहरण के लिए, दिए गए मैट्रि

  1. - Python प्रोग्राम में मैट्रिक्स का ट्रांसपोज़ खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक मैट्रिक्स दिया गया है, हमें मैट्रिक्स का ट्रांसपोज़ प्रदर्शित करने की आवश्यकता है। मैट्रिक्स का ट्रांसपोज़ A[i][j] पर मौजूद मान को A[j][i] से बदलकर प्राप्त किया जाता है। आइए नीचे कार्यान्वयन में अवधारणा का न