Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 39796

MCO16205 - Editorial

$
0
0

PROBLEM LINK:

PracticeContest

Author:Zi Song Yeoh

DIFFICULTY:

EASY

PREREQUISITES:

Dijkstra's Algorithm, Graph Theory

PROBLEM:

There's a weighted graph with $n$ vertices and $m$ edges. Additionally, each edge has a color. It is known the cost to go from one edge of color $i$ to one edge of color $j$ for all possible $(i, j)$. Find the shortest path from vertex $s$ to all other vertices.

EXPLANATION:

The first subtask can be solved using BFS, since the graph is unweighted and the colors of each edge is the same. Similarly, subtask $2$ can be solved with a direct application of Dijkstra's Algorithm.

The last subtask requires a small trick. We construct a new graph where each vertex is split into $k$ different vertices. In the new graph, the vertex $(i, j)$ denotes that we are at vertex $i$ and the color of the last edge we used is color $j$. Now, we can apply Dijkstra's Algorithm on this new graph and get the correct answer.

AUTHOR'S AND TESTER'S SOLUTIONS:

Author's solution can be found here.

Tester's solution can be found here.

RELATED PROBLEMS:


Viewing all articles
Browse latest Browse all 39796

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>