zoukankan      html  css  js  c++  java
  • 循环赛日程表

    循环赛日程表

    时限:1000ms 内存限制:10000K  总时限:3000ms

    描述
    用分治算法生成循环赛日程表(1到2的n次方个人)
     
    输入
    一个整数n
     
    输出
    循环赛日程表(1到2的n次方个人)
     
    输入样例
    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
    #include <iostream>
    #include <math.h>
    using namespace std;
    static int data[129][129];
    void Merge(int num)
    {
        for(int i = 1;i <= num/2; i++)
            for(int j = 1;j <= num/2; j++)
            {
                data[i][j+num/2] = data[i][j]+(num/2);  //正右方填充
                data[i+num/2][j] = data[i][j]+(num/2);  //正下方填充
                data[i+num/2][j+num/2] = data[i][j];    //右下方填充
            }
    
    }
    void Manage(int num,int n)          //num表示方阵的大小,n表示迭代的层次
    {
        if(n==0)
        {
            data[1][1] = 1;
        }
        else
        {
            Manage(num/2,n-1);
            Merge(num);
        }
    }
    void Show(int num)
    {
        for(int i = 1;i <= num/2; i++)
        {
            for(int j = 1;j <= num/2; j++)
                cout<<data[i][j]<<" ";
            cout<<endl;
        }
    
    }
    int main()
    {
        int n,num;
        cin>>n;
        n++;
        num = powl(2,n);
        Manage(num,n);
        Show(num);
        return 0;
    }
    

      

    态度决定高度,细节决定成败,
  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/4357913.html
Copyright © 2011-2022 走看看