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<stdio.h>
    #include<math.h>
    #define  N 65
    int Arr[N][N]={0};
    void timetable(int np);
    void copy(int np);
    void print(int np);
    int main()
    {
        int n,np;
        scanf("%d",&n);
        np=pow(2,n);    
        timetable(np);
        print(np);
        return 0;
    }
    void timetable(int np)
    {
        if(np==1)
        {  Arr[1][1]=1;  return; }
        else
        {  timetable(np/2);
           copy(np);     
        }
    }
    void copy(int np)
    {
       int k=np/2;
       for(int i=1;i<=k;i++)
           for(int j=1;j<=k;j++)
           {  Arr[i][j+k]=Arr[i][j]+k;
              Arr[i+k][j]=Arr[i][j]+k;
              Arr[i+k][j+k]=Arr[i][j];      
           }
    }
    void print(int np)
    {   
        for(int i=1;i<=np;i++)
        {    printf("%d",Arr[i][1]);
            for(int j=2;j<=np;j++)
                printf(" %d",Arr[i][j]);
            printf("\n");
        }
    }
  • 相关阅读:
    supervisor启动错误解决(二)
    删除文件某行
    离线安装
    docker中/var/lib/docker目录迁移
    if else 使用
    Django views函数添加装饰器
    Netty4
    Fast DFS(二)
    Fast DFS(一)
    SpringBoot和app之间跨域问题
  • 原文地址:https://www.cnblogs.com/IThaitian/p/2585040.html
Copyright © 2011-2022 走看看