问题:设有 n=2k个选手要进行网球循环赛。现要设计一个满足以下要求的比赛日程表:
(1)每个选手必须与其他 n-1个选手各赛一次;
(2)每个选手一天只能赛一次;
(1)每个选手必须与其他 n-1个选手各赛一次;
(2)每个选手一天只能赛一次;
(3)循环赛一共进行 n-1天。
分析:
可以将比赛表设计成一个n行n-1列的二维表,其中第i行第j列的元素表示和第i个选手在第j天比赛的选手号。
采用分治策略,可将所有参加比赛的选手分成两部分,n=2^k个选手的比赛日程表就可以通过n=2^(k-1)个选手的的比赛日程表来决定。递归的执行这样的分割,直到只剩下两个选手,比赛日程表的就可以通过这样的分治策略逐步构建。