基礎分治算法題——循環比賽日程表

問題 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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章