• 51..分治算法练习:  4378 【Laoguo】循环比赛



     时间限制: 1 s

     空间限制: 1000 KB

     题目等级 : 黄金 Gold

    题解

     查看运行结果

    题目描述 Description

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

    输入描述 Input Description

    输入1个整数m

    输出描述 Output Description

    输出表格形式的比赛安排表。

    样例输入 Sample Input

    3

    样例输出 Sample Output

    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

    数据范围及提示 Data Size & Hint

    1<=m<=8

    代码:

    #include

    using namespace std;

    #include

    #include

    int n,m,p[260][260];

    void f(int l)

    {

           if(l==1)return;

           else f(l/2);//

           for(int i=1;i<=l/2;++i)

             for(int j=1;j<=l/2;++j)

             {

                 p[i+l/2][j]=p[i][j]+l/2;

                 p[i][j+l/2]=p[i][j]+l/2;

                 p[i+l/2][j+l/2]=p[i][j];

             }

    }

    int main()

    {

           cin>>m;

           n=pow(2,m);//bianchang

           p[1][1]=1;

           if(m==0)

           {

                 

                  return 0;//坑爹数据有一个m0,应该没有输出才是

           }

           f(n);

           for(int i=1;i<=n;++i)

             {

                 for(int j=1;j<=n;++j)

                 printf("%d ",p[i][j]);

                 printf(" ");

             }

           return 0;

    }

  • 相关阅读:
    HNOI 越狱
    中国剩余定理详解
    洛谷P1133 教主的花园
    poj2728 Desert King
    bzoj1503 郁闷的出纳员
    Code Forces 698A Vacations
    Loj 10211 sumdiv
    noip2010 乌龟棋
    洛谷P4141消失之物
    Code Forces 543A Writing Code
  • 原文地址:https://www.cnblogs.com/c1299401227/p/5370771.html
Copyright © 2020-2023  润新知