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

ट्रेन का उपयोग करके गंतव्य तक पहुंचने के लिए न्यूनतम लागत का पता लगाएं


इस समस्या के लिए, यात्रा पर N स्टॉप हैं। वाहन स्टॉप 0 से एन-1 तक की यात्रा शुरू करता है। एक टेबल में, सभी जोड़ी स्टेशनों के लिए टिकट की लागत दी गई है। हमें दी गई लागतों के साथ गंतव्य तक पहुंचने के लिए न्यूनतम लागत का पता लगाना होगा।

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

Input:
The cost matrix of the journey.
0 15 80 90
∞  0 40 50
∞  ∞  0 70
∞  ∞  ∞  0

Output:
The minimum cost is 65.
At first go to the destination 1 from 0. (cost 15), then 1 to 4 (cost 50). So total cost 65.

एल्गोरिदम

findMinCost(cost)

इनपुट - प्रत्येक स्रोत से प्रत्येक गंतव्य के लिए लागत मैट्रिक्स।

आउटपुट - किसी गंतव्य तक पहुंचने के लिए न्यूनतम लागत का पता लगाएं।

Begin
   define array costLoc, whose size is same as sumber of locations,
   fill costLoc with ∞.
   n := number of locations
   costLoc[0] := 0

   for each source i to each destination j, do
      if costLoc[j] > costLoc[i] + cost[i, j], then
         costLoc[j] := costLoc[i] + cost[i, j]
   done

   return costLoc[n-1]
End

उदाहरण

#include<iostream>
#define INF INT_MAX
#define NODE 4
using namespace std;

int cost[NODE][NODE] = {
   {0, 15, 80, 90},
   {INF, 0, 40, 50},
   {INF, INF, 0, 70},
   {INF, INF, INF, 0}
};

int findMinCost() {          //find smallest possible cost to reach destination
   int costStation[NODE];    //store cost to reach any station from 0

   for (int i=0; i<NODE; i++)
      costStation[i] = INF;       //initially all are infinity
   costStation[0] = 0;         //cost for station 0 is 0 as it is starting point

   for (int i=0; i<NODE; i++)
      for (int j=i+1; j<NODE; j++)
         if (costStation[j] > costStation[i] + cost[i][j])    //find intermediate station for min cost costStation[j] = costStation[i] + cost[i][j];
   return costStation[NODE-1];
}

int main() {
   cout << "The Minimum cost to reach station " << NODE << " is " << findMinCost() << endl;
   return 0;
}

आउटपुट

The Minimum cost to reach station 4 is 65

  1. पायथन का उपयोग करके सभी नोड्स तक पहुंचने के लिए न्यूनतम संख्या में कोने खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक निर्देशित चक्रीय ग्राफ है, जिसमें n कोने हैं और नोड्स 0 से n-1 तक गिने जाते हैं, ग्राफ को किनारे की सूची द्वारा दर्शाया जाता है, जहां किनारों [i] =(यू, वी) नोड यू से एक निर्देशित किनारे का प्रतिनिधित्व करता है। नोड वी। हमें शिखर का सबसे छोटा सेट ढूंढना है जिससे ग्राफ में सभ

  1. पायथन में सीढ़ियों के शीर्ष पर चढ़ने के लिए न्यूनतम लागत प्राप्त करने का कार्यक्रम?

    मान लीजिए कि हमारे पास सीढ़ियों नामक संख्याओं की एक सूची है और दूसरा मान k है। हम वर्तमान में सीढ़ी 0 पर हैं और सीढ़ियों की अंतिम अनुक्रमणिका पर चढ़ना चाहते हैं। मूल्य सीढ़ी [i] सूचकांक पर पहुंचने की लागत को इंगित करता है और प्रत्येक दौर में हम एक बार में 1, 2, ... k, सीढ़ियां कूद सकते हैं। हमें अंत

  1. पायथन में गंतव्य तक पहुंचने के लिए न्यूनतम संख्या में ऊंचाई बढ़ाने का कार्यक्रम

    मान लीजिए कि हमारे पास एक मैट्रिक्स एम है जहां एम [आर] [सी] उस सेल की ऊंचाई का प्रतिनिधित्व करता है। अगर हम वर्तमान में ऊपरी बाएँ कोने में हैं और नीचे दाएँ कोने में जाना चाहते हैं। हम आसन्न कोशिकाओं (ऊपर, नीचे, बाएँ, दाएँ) में तभी जा सकते हैं जब उस आसन्न कोशिका की ऊँचाई वर्तमान कोशिका की ऊँचाई से कम