Dynamic Programming21 sections · 916 units
Open in Course

Challenge: Transition Enumeration

Generating valid transitions

For each mask, enumerate all ways to fill the row. This is recursive: at each column, try placing or not placing. Recursive generator: gen(col,curMask,nextMask)gen(col, curMask, nextMask) explores placing horizontal, vertical, or nothing at column colcol. improvement: precompute all valid (mask, nextMask) pairs.

Store in adjacency list. DP becomes matrix multiplication. For large nn, small mm: matrix exponentiation gives O(4mmlogn)O(4^m \cdot m \cdot \log n). Useful when n>>2mn >> 2^m.