我希望用PHP将100人分配到100个席位3天。
有10个贵宾席位,40个甲级座位和50个B级座位。 5人拥有VIP门票,45人拥有" classA"门票,50有一个" classB"票。
以下规则适用:
-Persons with a VIP ticket can only be seated on VIP seats
-Persons with a classA ticket may be seated on VIP seats
-Persons with a classB ticket can only be seated on ClassB seats
and seats should change for each day
这个问题是否有任何算法(可能是伪代码)?
答案 0 :(得分:1)
所有classB门票都分配给classB席位。因此,在第一天按顺序分配它们,第二天将它们向右移动,将最右边的人放在最左边的座位上,然后在最后一天的座位上重复相同的操作。
对于VIP门票,您使用5个第一个VIP座位,并对这5个座位采用相同的班次方法。
对于classA门票,您选择5个幸运门票:他们在所有3天内获得VIP席位:您在剩下的5个VIP席位上使用转换方法获得这5张门票。
其他40张A级门票被放在A级座位上,并且您每天都会将它们转移到第二天。