循环赛程问题

有N个运动员进行单循环赛,即每个运动员要和所有其他运动员进行一次比赛。将运动员从1到N编号。只考虑次幂的情况,即N=2^k

试用分治法为这N个运动员安排比赛日程。

(1)每个运动员要和其他N-1个运动员进行一次比赛

(2)要求每个运动员每天只进行一场比赛。

(3)且整个赛程在N -1天内结束。

#include

using namespace std;

#define MAX 50

int table[MAX][MAX];

void fillTable(int x, int y, int step)

{

if(step==1)

return;

step /= 2;

fillTable(x,y,step); //填写左上的表格

fillTable(x+step,y,step); //填写左下的表格

for(int i=0; i

for(int j=0; j

table[x+step+i][y+step+j] = table[x+i][y+j]; //右下表格抄左上表格

table[x+i][y+step+j] = table[x+step+i][y+j]; //右上表格抄左下表格

}

}

int main()

{

int n; //人数

ls:

cout<&

top
Copyright © 2088 90年世界杯|欧冠世界杯|西贡西北梦幻乐园世界杯休闲娱乐站|taybacsaigondreamland.com All Rights Reserved.
友情链接