将人分配到座位上

时间:2016-12-18 11:08:05

标签: php algorithm

我希望用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

这个问题是否有任何算法(可能是伪代码)?

1 个答案:

答案 0 :(得分:1)

所有classB门票都分配给classB席位。因此,在第一天按顺序分配它们,第二天将它们向右移动,将最右边的人放在最左边的座位上,然后在最后一天的座位上重复相同的操作。

对于VIP门票,您使用5个第一个VIP座位,并对这5个座位采用相同的班次方法。

对于classA门票,您选择5个幸运门票:他们在所有3天内获得VIP席位:您在剩下的5个VIP席位上使用转换方法获得这5张门票。

其他40张A级门票被放在A级座位上,并且您每天都会将它们转移到第二天。