設有n個選手進行迴圈比賽,其中n=2^m,要求每名選手要與其他n-1名選手都賽一次,每名選手每天比賽一次,迴圈賽共進行n-1天,要求每天沒有選手輪空。
輸入第一行為t,表示資料組數,對於每組資料就乙個m(1<=m<=10)。
對於每組輸入的m,輸出**形式的比賽安排表
13
1 2 3 4 5 6 7 82 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
hint
輸出每個數用%3d格式。
題意:根據示例來看:可以將每一行第一列看成每一位選手,後面的每一列是他需要和第幾位選手比賽;
當測試資料為1時:
1 2
2 1
測試資料為2是:
第一步:k=1;
1 2
2 1
第二步:k=2;
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
測試資料為3是:
第一步:k=1;
1 2
2 1
第二步:k=2;
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
第三步:k=4;
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
即每一步向三個方向擴充套件,即a[i+k][j],a[i][j+k],a[i+k][j+k];
# include# includeusing namespace std;int a[1100][1100];
int main()
{ //freopen("a.txt","r",stdin);
int t;
cin>>t;
while(t--)
{int m;
cin>>m;
int i,n=1;
for(i=0;i
迴圈賽日程表
對於書上那個日程表的實現,第三版的課本給出了迴圈實現的方法,不過這個表的生成明顯要用遞迴方法生成更為合適,此表如下 可以看到每次該錶的生成總可以分成四個字表的填充過程,初始化讓左邊第一列填充上之後,然後每一次先遞迴填充左上角的子表,然後再填充左下角的子表,然後右上和右下的子表用copy的方法填充,實...
迴圈賽日程表
問題描述 設有n 2 k個運動員要進行網球迴圈賽。現要設計乙個滿足以下要求的比賽日程表 1 每個選手必須與其他n 1個選手各賽一次 2 每個選手一天只能參賽一次 3 迴圈賽在n 1天內結束。自己可以嘗試畫表找出規律,這是4個運動員參加比賽的日程表。左上角四格自身的規律 左上角四格與左下角四格的規律 ...
迴圈賽日程表
問題描述 設有n 2 k個運動員要進行網球迴圈賽。現要設計乙個滿足以下要求的比賽日程表 1 每個選手必須與其他n 1個選手各賽一次 2 每個選手一天只能參賽一次 3 迴圈賽在n 1天內結束。請按此要求將比賽日程表設計成有n行和n 1列的乙個表。在表中的第i行,第j列處填入第i個選手在第j天所遇到的選...