• 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;

    }

  • 相关阅读:
    5月7号 跨页面传值
    实体类、数据访问类、属性扩展
    完整修改删除,防止数据库字符串攻击
    ADO.NET 增、删、改、查
    类库、委托、is as运算符、泛型集合
    抽象类、接口
    多态、虚方法、重写
    访问修饰符、封装、继承
    面向对象基础知识
    Java Script 练习题
  • 原文地址:https://www.cnblogs.com/csgc0131123/p/5290389.html
Copyright © 2020-2023  润新知