कठिन 0 हल किए गए 0% स्वीकृति

Shortest Delivery Tour

Visit every city once and return home as cheaply as possible.

समस्या

A courier starts at city 0, visits every other city exactly once and returns to city 0. distances[i][j] is the cost from i to j. With at most 15 cities, a bitmask dynamic program (Held–Karp) over visited sets is fast enough.

Implement shortest_tour(distances).

Input

distances: An n × n matrix of travel costs; distances[i][i] = 0.

Output

Return the cost of the cheapest round trip.

सीमाएँ

1 ≤ n ≤ 15; 0 ≤ cost ≤ 1,000,000

उदाहरण

उदाहरण 1
इनपुट:
distances = [
    [0, 10, 15, 20],
    [10, 0, 35, 25],
    [15, 35, 0, 30],
    [20, 25, 30, 0]
]

अपेक्षित आउटपुट:
expected = 80
इनपुट:
std::vector<std::vector<long long>> distances = {
    {0, 10, 15, 20},
    {10, 0, 35, 25},
    {15, 35, 0, 30},
    {20, 25, 30, 0}
};

अपेक्षित आउटपुट:
long long expected = 80;
इनपुट:
long[][] distances = new long[][] {
    new long[] {0, 10, 15, 20},
    new long[] {10, 0, 35, 25},
    new long[] {15, 35, 0, 30},
    new long[] {20, 25, 30, 0}
};

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

व्याख्या

0→1→3→2→0 costs 10 + 25 + 30 + 15 = 80, the cheapest tour.

उदाहरण 2
इनपुट:
distances = [
    [0]
]

अपेक्षित आउटपुट:
expected = 0
इनपुट:
std::vector<std::vector<long long>> distances = {
    {0}
};

अपेक्षित आउटपुट:
long long expected = 0;
इनपुट:
long[][] distances = new long[][] {
    new long[] {0}
};

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

व्याख्या

With one city there is nowhere to go: 0.

संदर्भ

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

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

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

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