Mistake : Forgetting that profiles represent which cells are already filled, not which cells are empty. If you invert the meaning, your transitions will be backwards. Mistake : Not handling the base case correctly.
You must start with (or the equivalent for your indexing). Starting with all zeros gives zero tilings. Mistake : Off-by-one errors in bit indexing. Bit corresponds to row , but if you're not consistent about -indexed vs -indexed, you'll set wrong bits. Test on small cases.