問題:
設有n個選手進行迴圈比賽,其中n=2^m ,要求每名選手要與其他n−1名選手都賽一次,每名選手每天比賽一次,迴圈賽共進行n−1天,要求每天沒有選手輪空。
輸入格式:
輸入:m(m<=7)。
輸出格式:
輸出:**形式的比賽安排表。一行各資料間用乙個空格隔開。
輸入樣例:
3輸出樣例:
在這裡給出相應的輸出。例如:
1 2 3 4 5 6 7 8
2 1 4 3 6 5 8 7
3 4 1 2 7 8 5 6
4 3 2 1 8 7 6 5
5 6 7 8 1 2 3 4
6 5 8 7 2 1 4 3
7 8 5 6 3 4 1 2
8 7 6 5 4 3 2 1
說明,第一行為:1 2 3 4 5 6 7 8,1表示本行都是1號選手和其他選手的比賽,如第2個數為2(其下標可以看成1)表示第一天1號和2號比賽,第5個數為5(其下標可以看成4),表示1號和5號在第4天比賽。
分析:
源**:
#include
#include
using
namespace std;
#define n 128
//遞迴函式
void
arrange
(int p,
int q,
int t,
int arr[n]
[n])
//填左下角
for(
int i = p + t /
2; i < p + t; i++)}
//填右下角
for(
int i = p + t /
2; i < p + t; i++)}
}int
main()
//遞迴
arrange(0
,0, n, arr)
;//列印輸出迴圈賽日程表
for(
int i =
0; i < n; i++
) cout << endl;
}return0;
}
遞迴 PTA迴圈日程表
設有n個選手進行迴圈比賽,其中n 2 m,要求每名選手要與其他n 1名選手都賽一次,每名選手每天比賽一次,迴圈賽共進行n 1天,要求每天沒有選手輪空。輸入格式 輸入 m m 7 輸出格式 輸出 形式的比賽安排表。一行各資料間用乙個空格隔開。輸入樣例 3輸出樣例 在這裡給出相應的輸出。例如 1 2 3...
迴圈日程表
問題 設有n 2k個運動員要進行網球迴圈賽。現要設計乙個滿足以下要求的比賽日程表 每個選手必須與其他n 1個選手各賽一次,每個選手一天只能賽一次,迴圈賽一共進行n 1天。分析分治思想,k的日程表是通過k 1的日程表通過相加得到 include include using namespace std ...
6 迴圈賽日程表
問題描述 設有n 2k個運動員要進行網球迴圈賽。現要設計乙個滿足以下要求的比賽日程表 每個選手必須與其他n 1個選手各賽一次,每個選手一天只能賽一次,迴圈賽一共進行n 1天。輸出樣例 81 2 3 4 5 6 7 8 2 1 4 3 6 5 8 7 3 4 1 2 7 8 5 6 4 3 2 1 8...