有题干如内文,请问有没有哪位大侠能提供一个经典的算法,或者算法名称也可以,高分急等,谢谢!
在非洲草原里,生活着三类动物--大象、蛇、老鼠(每类动物的数量未知),以及一位妖精,他们各自具有非凡的本领:
象(踩)胜蛇;
蛇(噬)胜鼠;
鼠(钻鼻孔)胜象;
妖精可以变化,可以将自己变为大象、蛇、老鼠3类动物中的某一种,从而具有所变动物的能力,但具体会变成哪类动物是随机的,在比赛之前妖精本人也不知道。
注:同类的动物之间则会战成平手。
为了增进各类动物和妖精之间的交流,非洲草原举行了一界比武大会,比武大会的规则如下:
动物们自愿报名,妖精必须参赛。
赛前对每位参赛选手进行编号(编号为从1到n的整数,n为总选手个数)。
比赛会进行多场,每场比赛随机抽取两位选手到擂台上进行比武,上擂台之前两位选手都不知道对方的身份(动物的类型)。
每场比赛中,如果妖精被选中,他可以在上擂台前施展变化变为三类动物之一,但不允许在擂台上变化。
整个赛事会通过广播进行直播,而播音员为了省事,每场比赛结束的时候,他只会报导说:i号选手战胜(平)了j号选手(i,j<=n),但不会说出i号和j号选手的身份(动物的类型)。
假如此时你坐在收音机旁收听比赛直播,你能否根据比赛结果判断出谁是妖精?