跪求求解一个算法,非常之急,高手给小弟指点一下
现遇到一个问题,不知道使用什么算法,各位高手给小弟一个指点,先谢谢各位了。
有n个箱子,每个箱子有m个球,现要从箱子中每次取出一个球,取球的原则和限定条件
1、 每个箱子有优先级限定
2、 当两个箱子的优先级相同时,首先取优先级最高的箱子里面的球
3、 每个周期之后,必须每个箱子至少取出一个球
例1
有三个箱子,A箱子有6个球,优先级1;
B箱子有3个球,优先级2;
C箱子有3个球,优先级3;
取出来的球分别以ABC表示从三个箱子中取出来的球的队列,结果为
ABACABACABACABAC
此时A箱子的数量时1/2,那么取两个球必须有一个出现,B和C为1/4,每四个必须出现一次,且B的优先级比C高,那么B在C之前取出
例2
A箱子有6个球,优先级1;
B箱子有5个球,优先级2;
C箱子有1个球,优先级3;
结果队列应为
ABACABABABAB
例3
A箱子有7个球,优先级1;
B箱子有3个球,优先级2;
C箱子有2个球,优先级3;
结果队列为
ABACABACABAA 此时当其中的N-1个箱子的球取完之后,将剩余箱子的小球全部取出,放到队列后面.