基础分治算法题——循环比赛日程表

问题 B: 循环比赛日程表

时间限制: 1 Sec  内存限制: 128 MB
提交: 1  解决: 1
[提交][状态][讨论版]

题目描述

设有N个选手进行循环比赛,其中N=2M,要求每名选手要与其他N-1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N-1天,要求每天没有选手轮空。


输入

M(1<=M<=6)

输出

表格形式的比赛安排表,每个数占3列。

样例输入

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

一道基础的分治,意思大约是每行每列不可以有重复的数字(类似数独),而且还有时间限制,那个几串数字吓得我不敢看,真的觉得很难找规律,然后看了一会决定用打表的方法来做,因为当n*n为64*64时,他的前2*2还是和n为2的时候是一样的。

如图上的标记

这样子只需要知道64*64的全部数字就可以打出前N×N了。

然后这些数字是怎么填出来来的呢,这里就体现我们分治思想了。仔细看图可以发现



看出来了吗,第一个粗线框框里可以分成8个部分。(我只给五个画了颜色)每个格子与前面格子里的数字一一对映。算算差值你就知道了(每块的差值都不同)。这个图还是个对称图。

把excel的复制到txt里把空格替换成逗号就可以给数组赋值了。

#include<cstdio>
#include<iostream>
using namespace std;
int ans[64][64]={........};  //数字太多我怕这里会炸,我留到后面给你们看。

int main()
{
    int m;
    while(cin>>m)
    {
        int n=2;
        for(int i=1;i<m;i++)
            n=2*n;
        //cout<<n;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
                printf("%3d",ans[i][j]);
            printf("\n");

        }
    }
    return 0;
}

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,18,17,20,19,22,21,24,23,26,25,28,27,30,29,32,31,34,33,36,35,38,37,40,39,42,41,44,43,46,45,48,47,50,49,52,51,54,53,56,55,58,57,60,59,62,61,64,63
3,4,1,2,7,8,5,6,11,12,9,10,15,16,13,14,19,20,17,18,23,24,21,22,27,28,25,26,31,32,29,30,35,36,33,34,39,40,37,38,43,44,41,42,47,48,45,46,51,52,49,50,55,56,53,54,59,60,57,58,63,64,61,62
4,3,2,1,8,7,6,5,12,11,10,9,16,15,14,13,20,19,18,17,24,23,22,21,28,27,26,25,32,31,30,29,36,35,34,33,40,39,38,37,44,43,42,41,48,47,46,45,52,51,50,49,56,55,54,53,60,59,58,57,64,63,62,61
5,6,7,8,1,2,3,4,13,14,15,16,9,10,11,12,21,22,23,24,17,18,19,20,29,30,31,32,25,26,27,28,37,38,39,40,33,34,35,36,45,46,47,48,41,42,43,44,53,54,55,56,49,50,51,52,61,62,63,64,57,58,59,60
6,5,8,7,2,1,4,3,14,13,16,15,10,9,12,11,22,21,24,23,18,17,20,19,30,29,32,31,26,25,28,27,38,37,40,39,34,33,36,35,46,45,48,47,42,41,44,43,54,53,56,55,50,49,52,51,62,61,64,63,58,57,60,59
7,8,5,6,3,4,1,2,15,16,13,14,11,12,9,10,23,24,21,22,19,20,17,18,31,32,29,30,27,28,25,26,39,40,37,38,35,36,33,34,47,48,45,46,43,44,41,42,55,56,53,54,51,52,49,50,63,64,61,62,59,60,57,58
8,7,6,5,4,3,2,1,16,15,14,13,12,11,10,9,24,23,22,21,20,19,18,17,32,31,30,29,28,27,26,25,40,39,38,37,36,35,34,33,48,47,46,45,44,43,42,41,56,55,54,53,52,51,50,49,64,63,62,61,60,59,58,57
9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,25,26,27,28,29,30,31,32,17,18,19,20,21,22,23,24,41,42,43,44,45,46,47,48,33,34,35,36,37,38,39,40,57,58,59,60,61,62,63,64,49,50,51,52,53,54,55,56
10,9,12,11,14,13,16,15,2,1,4,3,6,5,8,7,26,25,28,27,30,29,32,31,18,17,20,19,22,21,24,23,42,41,44,43,46,45,48,47,34,33,36,35,38,37,40,39,58,57,60,59,62,61,64,63,50,49,52,51,54,53,56,55
11,12,9,10,15,16,13,14,3,4,1,2,7,8,5,6,27,28,25,26,31,32,29,30,19,20,17,18,23,24,21,22,43,44,41,42,47,48,45,46,35,36,33,34,39,40,37,38,59,60,57,58,63,64,61,62,51,52,49,50,55,56,53,54
12,11,10,9,16,15,14,13,4,3,2,1,8,7,6,5,28,27,26,25,32,31,30,29,20,19,18,17,24,23,22,21,44,43,42,41,48,47,46,45,36,35,34,33,40,39,38,37,60,59,58,57,64,63,62,61,52,51,50,49,56,55,54,53
13,14,15,16,9,10,11,12,5,6,7,8,1,2,3,4,29,30,31,32,25,26,27,28,21,22,23,24,17,18,19,20,45,46,47,48,41,42,43,44,37,38,39,40,33,34,35,36,61,62,63,64,57,58,59,60,53,54,55,56,49,50,51,52
14,13,16,15,10,9,12,11,6,5,8,7,2,1,4,3,30,29,32,31,26,25,28,27,22,21,24,23,18,17,20,19,46,45,48,47,42,41,44,43,38,37,40,39,34,33,36,35,62,61,64,63,58,57,60,59,54,53,56,55,50,49,52,51
15,16,13,14,11,12,9,10,7,8,5,6,3,4,1,2,31,32,29,30,27,28,25,26,23,24,21,22,19,20,17,18,47,48,45,46,43,44,41,42,39,40,37,38,35,36,33,34,63,64,61,62,59,60,57,58,55,56,53,54,51,52,49,50
16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49
17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48
18,17,20,19,22,21,24,23,26,25,28,27,30,29,32,31,2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,50,49,52,51,54,53,56,55,58,57,60,59,62,61,64,63,34,33,36,35,38,37,40,39,42,41,44,43,46,45,48,47
19,20,17,18,23,24,21,22,27,28,25,26,31,32,29,30,3,4,1,2,7,8,5,6,11,12,9,10,15,16,13,14,51,52,49,50,55,56,53,54,59,60,57,58,63,64,61,62,35,36,33,34,39,40,37,38,43,44,41,42,47,48,45,46
20,19,18,17,24,23,22,21,28,27,26,25,32,31,30,29,4,3,2,1,8,7,6,5,12,11,10,9,16,15,14,13,52,51,50,49,56,55,54,53,60,59,58,57,64,63,62,61,36,35,34,33,40,39,38,37,44,43,42,41,48,47,46,45
21,22,23,24,17,18,19,20,29,30,31,32,25,26,27,28,5,6,7,8,1,2,3,4,13,14,15,16,9,10,11,12,53,54,55,56,49,50,51,52,61,62,63,64,57,58,59,60,37,38,39,40,33,34,35,36,45,46,47,48,41,42,43,44
22,21,24,23,18,17,20,19,30,29,32,31,26,25,28,27,6,5,8,7,2,1,4,3,14,13,16,15,10,9,12,11,54,53,56,55,50,49,52,51,62,61,64,63,58,57,60,59,38,37,40,39,34,33,36,35,46,45,48,47,42,41,44,43
23,24,21,22,19,20,17,18,31,32,29,30,27,28,25,26,7,8,5,6,3,4,1,2,15,16,13,14,11,12,9,10,55,56,53,54,51,52,49,50,63,64,61,62,59,60,57,58,39,40,37,38,35,36,33,34,47,48,45,46,43,44,41,42
24,23,22,21,20,19,18,17,32,31,30,29,28,27,26,25,8,7,6,5,4,3,2,1,16,15,14,13,12,11,10,9,56,55,54,53,52,51,50,49,64,63,62,61,60,59,58,57,40,39,38,37,36,35,34,33,48,47,46,45,44,43,42,41
25,26,27,28,29,30,31,32,17,18,19,20,21,22,23,24,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,57,58,59,60,61,62,63,64,49,50,51,52,53,54,55,56,41,42,43,44,45,46,47,48,33,34,35,36,37,38,39,40
26,25,28,27,30,29,32,31,18,17,20,19,22,21,24,23,10,9,12,11,14,13,16,15,2,1,4,3,6,5,8,7,58,57,60,59,62,61,64,63,50,49,52,51,54,53,56,55,42,41,44,43,46,45,48,47,34,33,36,35,38,37,40,39
27,28,25,26,31,32,29,30,19,20,17,18,23,24,21,22,11,12,9,10,15,16,13,14,3,4,1,2,7,8,5,6,59,60,57,58,63,64,61,62,51,52,49,50,55,56,53,54,43,44,41,42,47,48,45,46,35,36,33,34,39,40,37,38
28,27,26,25,32,31,30,29,20,19,18,17,24,23,22,21,12,11,10,9,16,15,14,13,4,3,2,1,8,7,6,5,60,59,58,57,64,63,62,61,52,51,50,49,56,55,54,53,44,43,42,41,48,47,46,45,36,35,34,33,40,39,38,37
29,30,31,32,25,26,27,28,21,22,23,24,17,18,19,20,13,14,15,16,9,10,11,12,5,6,7,8,1,2,3,4,61,62,63,64,57,58,59,60,53,54,55,56,49,50,51,52,45,46,47,48,41,42,43,44,37,38,39,40,33,34,35,36
30,29,32,31,26,25,28,27,22,21,24,23,18,17,20,19,14,13,16,15,10,9,12,11,6,5,8,7,2,1,4,3,62,61,64,63,58,57,60,59,54,53,56,55,50,49,52,51,46,45,48,47,42,41,44,43,38,37,40,39,34,33,36,35
31,32,29,30,27,28,25,26,23,24,21,22,19,20,17,18,15,16,13,14,11,12,9,10,7,8,5,6,3,4,1,2,63,64,61,62,59,60,57,58,55,56,53,54,51,52,49,50,47,48,45,46,43,44,41,42,39,40,37,38,35,36,33,34
32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33
33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32
34,33,36,35,38,37,40,39,42,41,44,43,46,45,48,47,50,49,52,51,54,53,56,55,58,57,60,59,62,61,64,63,2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,18,17,20,19,22,21,24,23,26,25,28,27,30,29,32,31
35,36,33,34,39,40,37,38,43,44,41,42,47,48,45,46,51,52,49,50,55,56,53,54,59,60,57,58,63,64,61,62,3,4,1,2,7,8,5,6,11,12,9,10,15,16,13,14,19,20,17,18,23,24,21,22,27,28,25,26,31,32,29,30
36,35,34,33,40,39,38,37,44,43,42,41,48,47,46,45,52,51,50,49,56,55,54,53,60,59,58,57,64,63,62,61,4,3,2,1,8,7,6,5,12,11,10,9,16,15,14,13,20,19,18,17,24,23,22,21,28,27,26,25,32,31,30,29
37,38,39,40,33,34,35,36,45,46,47,48,41,42,43,44,53,54,55,56,49,50,51,52,61,62,63,64,57,58,59,60,5,6,7,8,1,2,3,4,13,14,15,16,9,10,11,12,21,22,23,24,17,18,19,20,29,30,31,32,25,26,27,28
38,37,40,39,34,33,36,35,46,45,48,47,42,41,44,43,54,53,56,55,50,49,52,51,62,61,64,63,58,57,60,59,6,5,8,7,2,1,4,3,14,13,16,15,10,9,12,11,22,21,24,23,18,17,20,19,30,29,32,31,26,25,28,27
39,40,37,38,35,36,33,34,47,48,45,46,43,44,41,42,55,56,53,54,51,52,49,50,63,64,61,62,59,60,57,58,7,8,5,6,3,4,1,2,15,16,13,14,11,12,9,10,23,24,21,22,19,20,17,18,31,32,29,30,27,28,25,26
40,39,38,37,36,35,34,33,48,47,46,45,44,43,42,41,56,55,54,53,52,51,50,49,64,63,62,61,60,59,58,57,8,7,6,5,4,3,2,1,16,15,14,13,12,11,10,9,24,23,22,21,20,19,18,17,32,31,30,29,28,27,26,25
41,42,43,44,45,46,47,48,33,34,35,36,37,38,39,40,57,58,59,60,61,62,63,64,49,50,51,52,53,54,55,56,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,25,26,27,28,29,30,31,32,17,18,19,20,21,22,23,24
42,41,44,43,46,45,48,47,34,33,36,35,38,37,40,39,58,57,60,59,62,61,64,63,50,49,52,51,54,53,56,55,10,9,12,11,14,13,16,15,2,1,4,3,6,5,8,7,26,25,28,27,30,29,32,31,18,17,20,19,22,21,24,23
43,44,41,42,47,48,45,46,35,36,33,34,39,40,37,38,59,60,57,58,63,64,61,62,51,52,49,50,55,56,53,54,11,12,9,10,15,16,13,14,3,4,1,2,7,8,5,6,27,28,25,26,31,32,29,30,19,20,17,18,23,24,21,22
44,43,42,41,48,47,46,45,36,35,34,33,40,39,38,37,60,59,58,57,64,63,62,61,52,51,50,49,56,55,54,53,12,11,10,9,16,15,14,13,4,3,2,1,8,7,6,5,28,27,26,25,32,31,30,29,20,19,18,17,24,23,22,21
45,46,47,48,41,42,43,44,37,38,39,40,33,34,35,36,61,62,63,64,57,58,59,60,53,54,55,56,49,50,51,52,13,14,15,16,9,10,11,12,5,6,7,8,1,2,3,4,29,30,31,32,25,26,27,28,21,22,23,24,17,18,19,20
46,45,48,47,42,41,44,43,38,37,40,39,34,33,36,35,62,61,64,63,58,57,60,59,54,53,56,55,50,49,52,51,14,13,16,15,10,9,12,11,6,5,8,7,2,1,4,3,30,29,32,31,26,25,28,27,22,21,24,23,18,17,20,19
47,48,45,46,43,44,41,42,39,40,37,38,35,36,33,34,63,64,61,62,59,60,57,58,55,56,53,54,51,52,49,50,15,16,13,14,11,12,9,10,7,8,5,6,3,4,1,2,31,32,29,30,27,28,25,26,23,24,21,22,19,20,17,18
48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17
49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
50,49,52,51,54,53,56,55,58,57,60,59,62,61,64,63,34,33,36,35,38,37,40,39,42,41,44,43,46,45,48,47,18,17,20,19,22,21,24,23,26,25,28,27,30,29,32,31,2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15
51,52,49,50,55,56,53,54,59,60,57,58,63,64,61,62,35,36,33,34,39,40,37,38,43,44,41,42,47,48,45,46,19,20,17,18,23,24,21,22,27,28,25,26,31,32,29,30,3,4,1,2,7,8,5,6,11,12,9,10,15,16,13,14
52,51,50,49,56,55,54,53,60,59,58,57,64,63,62,61,36,35,34,33,40,39,38,37,44,43,42,41,48,47,46,45,20,19,18,17,24,23,22,21,28,27,26,25,32,31,30,29,4,3,2,1,8,7,6,5,12,11,10,9,16,15,14,13
53,54,55,56,49,50,51,52,61,62,63,64,57,58,59,60,37,38,39,40,33,34,35,36,45,46,47,48,41,42,43,44,21,22,23,24,17,18,19,20,29,30,31,32,25,26,27,28,5,6,7,8,1,2,3,4,13,14,15,16,9,10,11,12
54,53,56,55,50,49,52,51,62,61,64,63,58,57,60,59,38,37,40,39,34,33,36,35,46,45,48,47,42,41,44,43,22,21,24,23,18,17,20,19,30,29,32,31,26,25,28,27,6,5,8,7,2,1,4,3,14,13,16,15,10,9,12,11
55,56,53,54,51,52,49,50,63,64,61,62,59,60,57,58,39,40,37,38,35,36,33,34,47,48,45,46,43,44,41,42,23,24,21,22,19,20,17,18,31,32,29,30,27,28,25,26,7,8,5,6,3,4,1,2,15,16,13,14,11,12,9,10
56,55,54,53,52,51,50,49,64,63,62,61,60,59,58,57,40,39,38,37,36,35,34,33,48,47,46,45,44,43,42,41,24,23,22,21,20,19,18,17,32,31,30,29,28,27,26,25,8,7,6,5,4,3,2,1,16,15,14,13,12,11,10,9
57,58,59,60,61,62,63,64,49,50,51,52,53,54,55,56,41,42,43,44,45,46,47,48,33,34,35,36,37,38,39,40,25,26,27,28,29,30,31,32,17,18,19,20,21,22,23,24,9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8
58,57,60,59,62,61,64,63,50,49,52,51,54,53,56,55,42,41,44,43,46,45,48,47,34,33,36,35,38,37,40,39,26,25,28,27,30,29,32,31,18,17,20,19,22,21,24,23,10,9,12,11,14,13,16,15,2,1,4,3,6,5,8,7
59,60,57,58,63,64,61,62,51,52,49,50,55,56,53,54,43,44,41,42,47,48,45,46,35,36,33,34,39,40,37,38,27,28,25,26,31,32,29,30,19,20,17,18,23,24,21,22,11,12,9,10,15,16,13,14,3,4,1,2,7,8,5,6
60,59,58,57,64,63,62,61,52,51,50,49,56,55,54,53,44,43,42,41,48,47,46,45,36,35,34,33,40,39,38,37,28,27,26,25,32,31,30,29,20,19,18,17,24,23,22,21,12,11,10,9,16,15,14,13,4,3,2,1,8,7,6,5
61,62,63,64,57,58,59,60,53,54,55,56,49,50,51,52,45,46,47,48,41,42,43,44,37,38,39,40,33,34,35,36,29,30,31,32,25,26,27,28,21,22,23,24,17,18,19,20,13,14,15,16,9,10,11,12,5,6,7,8,1,2,3,4
62,61,64,63,58,57,60,59,54,53,56,55,50,49,52,51,46,45,48,47,42,41,44,43,38,37,40,39,34,33,36,35,30,29,32,31,26,25,28,27,22,21,24,23,18,17,20,19,14,13,16,15,10,9,12,11,6,5,8,7,2,1,4,3
63,64,61,62,59,60,57,58,55,56,53,54,51,52,49,50,47,48,45,46,43,44,41,42,39,40,37,38,35,36,33,34,31,32,29,30,27,28,25,26,23,24,21,22,19,20,17,18,15,16,13,14,11,12,9,10,7,8,5,6,3,4,1,2
64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1


发布了48 篇原创文章 · 获赞 8 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章