Graph Theory37 sections · 1633 units
Open in Course

Hamiltonian Flights - Analysis

Recognizing the bitmask DP pattern.

Pattern recognition:

  • Visit every vertex exactly once = Hamiltonian path
  • Count paths, not just existence
  • n20n \leq 20 = bitmask DP is feasible

State: dp[mask][i] = number of paths visiting exactly the cities in maskmask, ending at city ii.

Transition: For each edge (i,j)(i, j):

if mask has i and not j:
 dp[mask | (1 << j)][j] += dp[mask][i]

Answer: dp[2^n - 1][n-1] (all cities visited, ending at city nn).