Models and Algorithms for a Staff Scheduling Problem