Competitive Programming


  • DP’s secret: think globally optimal, not just locally.

    • You have to break the problem into simpler subproblems, solving each of them just once, and building the solution combining these solved subproblems

  • The opposite of DP is a greedy algorithm because the latter picks the locally optimal choice at each step. And locally optimal choices may result in a bad global solution.