Mercurial > repos > other > adventofcode2023
view day15.txt @ 26:eb6c3a7d2f72
Constrained and more optimised route finding
* Track routes so we can see if we have gone straight for
too long
* Track multiple routes so we can use a non-optimal route to
X if it makes another route to Y through X possible (e.g.
optimal route takes three consecutive steps to X, but then
has to turn, whereas a longer straight earlier and two
consecutive steps to X gives a much better next hop to Y)
* We have a start point, so only include the nodes from the
search front in "unvisited" to avoid looking at lots of
irrelevant nodes
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 17 Dec 2023 20:13:03 +0000 |
parents | ad73a2ff3d06 |
children |
line wrap: on
line source
--- Day 15: Lens Library --- Implement a custom hashing algorithm: Determine the ASCII code for the current character of the string. Increase the current value by the ASCII code you just determined. Set the current value to itself multiplied by 17. Set the current value to the remainder of dividing itself by 256. Values are comma-separated. For example: rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7 Gives 11 individual steps; the result of running the HASH algorithm on each of the steps is as follows: rn=1 becomes 30. cm- becomes 253. qp=3 becomes 97. cm=2 becomes 47. qp- becomes 14. pc=4 becomes 180. ot=9 becomes 9. ab=5 becomes 197. pc- becomes 48. pc=6 becomes 214. ot=7 becomes 231. Then sum the hashes.