Hints for SRM 596, D2, 500-Pointer (ColorfulRoad)

James S. Plank

Sun Nov 3 11:08:44 EST 2013
Problem Statement.
I'm sure that there are multiple ways to do this. Given how small the constraints are, and the fact that the graph is acyclic, I'm guessing that dynamic programming or topological sort will work. However, it's really easy to turn the string into a weighted graph, and then use Dijkstra's algorithm to find the shortest path from the first character to the last. It took me nine minutes to code it from scratch, and again, it's great practice.

Below, I'll draw graphs for the first two examples. From that, you should be able to see how you create a graph from a string, and then it is up to you to code up Dijkstra's algorithm.

Example 0:


Example 1:


Example 3: