Arduino 300 Outputs

allanhurst:
If you only need one relay to be on at a time, then things get much simpler. Arrange them in a 18x18 matrix.

SQRT 300 is < 18 so you just need to drive one of 18 lines HIGH, and one of 18 LOW.

3 shift registers for each of the HIGH and LOW drivers.

An 18x18 matrix is a bit wasteful, a 15x20 matrix can be done with 5 shift registers.