Solving Problems With Graphs