There can be edge cases even on day 1
Got some practice with the mutable arrays boilerplate
TODO: check how the quadratic formula was derived (the solution still uses a direct enumeration)
The quick lcm
bid worked, but only because the input allowed it. TYIL:
try the quick and easy solution before going on the full-fledged on (which
would have been the Chinese remainder theorem)
TODO: what are winding numbers?
- it's worth considering whether a problem can be decomposed into its constituent dimensions (rows and columns in this case)
- "symbolic representations win"
Started out with a very fun logic programming-style solution, which helped a lot with debugging, but was too memory-hungry, so ultimately it had to be dropped. Caching worked because the ends of the lists the "shared sub-problems".
TODO: recreate the original implementation
Implemented Dijkstra search from scratch, better late than never
TODO: shoelace + pick's
Looking at the input is as important as looking at the problem description
- TODO: deriving the quadratic formula
- TODO: implement Hashlife
Lack of sleep makes you dumber
z3 + SBV (to a degree)
put it in graphviz