座位排队问题
描述:
有 m (m>0) 个餐桌,一个餐桌只能坐一个人,现在有多组人排队用餐,每组人数不固定,但不多于餐桌数,且每个组员都分配在一固定的不同的餐桌前排队,排队是以组为单位,而不是个人,也就是说该组的组员要么就一起用餐,要么就一起不用餐,即使该组某一组员所在餐桌队列中轮到他,但其所在的组只要有一成员还没轮到也不能独自用餐。正在排队中的组可以和前后非正在用餐的组交换在队列中的位置。注意,有可能多个组能同时用餐(例如:5个餐桌,A组2个人,B组3个人,他们各人都在不同餐桌队列上,那么就有可能A和B组能同一时间用餐)。
问题:
快速地查询出某组在队列的顺序位置,包括在组位置前后交换后也能快速查询到
请各位讨论一下算法