分治算法 循环比赛日程表

  • 题目:
  • 解析:
    • 思路:
    • 代码:

题目:

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

解析:

看完这道题的童鞋们

肯定不知道这题为何是分支

其实呀

给童鞋们

看一下

输出出来的表格就知道了

这个表格

可以分成4份

左上角的那份

和右下角相同

右上角的那份

和左下角相同

每个小份

可以再分成4份

每个右上角块数值=左上角块+每一块的边长

同上

思路:

先将a[1][1]

赋值为1

a[1][1]就是第一个左上角

接着再通过第一个左上角

造出第一个右上角

再通过赋值的方式

就把四个角都赋值好了

再把这个方块

作为一个左上角

同上

代码:
#include<bits/stdc++.h>
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int m,n,a[1000][1000],l;
int main()
{freopen("bs.in","r",stdin);freopen("bs.out","w",stdout);cin>>m;n=pow(2,m);a[1][1]=1; for(int k=0;k<m;k++){l=pow(2,k);for(int i=1;i<=l;i++)//先造出右上角的数据 for(int j=1;j<=l;j++)a[i][j+l]=a[i][j]+l;for(int i=1;i<=l;i++)//左上角的数据与右下角的数据相同 for(int j=1;j<=l;j++)a[i+l][j+l]=a[i][j];for(int i=1;i<=l;i++)//右上角的数据与左下角的数据相同 for(int j=1;j<=l;j++)a[i+l][j]=a[i][j+l];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)cout<<a[i][j]<<" ";cout<<endl;}fclose(stdin);fclose(stdout);return 0;
}

拜拜!!!

分治算法 循环比赛日程表相关推荐

  1. 循环比赛日程表(分治 C++)

    循环比赛日程表 总时间限制: 1000ms 内存限制: 65535kB 描述 设有n个选手进行循环比赛,其中n=2m,要求每名选手要与其他n-1名选手都赛一次,每名选手每天比赛一次,循环赛共进行n-1 ...

  2. 1325:【例7.4】 循环比赛日程表——分治

    [题目描述] 设有N个选手进行循环比赛,其中N=2^M,要求每名选手要与其他N−1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N−1天,要求每天没有选手轮空. [输入] 输入:M. [输出] 输 ...

  3. 【例7.4】 循环比赛日程表

    1325:[例7.4] 循环比赛日程表 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 1717     通过数: 901 [题目描述] 设有NN个选手进行循环比赛 ...

  4. 信息奥赛一本通(1325:【例7.4】 循环比赛日程表)

    1325:[例7.4] 循环比赛日程表 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 6257     通过数: 3483 [题目描述] 设有N个选手进行循环比赛 ...

  5. 循环比赛日程表(match)

    循环比赛日程表(match) #include<bits/stdc++.h> using namespace std; int m,n,a[1005][1005],h[1005][1005 ...

  6. 1325:【例7.4】 循环比赛日程表

    1325:[例7.4] 循环比赛日程表 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 8879     通过数: 5227 [题目描述] 设有NN个选手进行循环比 ...

  7. 循环比赛日程表(信息学奥赛一本通-T1325)

    [题目描述] 设有N个选手进行循环比赛,其中N=2M,要求每名选手要与其他N-1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N-1天,要求每天没有选手轮空. [输入] 输入:M. [输出] 输出 ...

  8. 循环比赛日程表(分治法)

    问题描述: 设有n=2^k个运动员要进行网球循环赛.现要设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次:      (2)每个选手一天只能参赛一次:      (3) ...

  9. 分治算法解循环赛日程表问题

    • 问题描述:n=2^k个运动员进行"地表最强16人"循环赛,日程满足:   每个选手必须与其他n-1个选手比赛一次:   每个选手一天只能赛一次:   循环赛一共进行n-1天. ...

  10. python实现循环赛日程表问题的算法_循环赛日程表的分治算法实现实验报告gxl.doc...

    循环赛日程表的分治算法实现实验报告gxl PAGE PAGE 2 深 圳 大 学 实 验 报 告 课程名称: 算法设计与分析 实验项目名称: 分治算法 --矩阵相乘的Strassen算法及时间复杂性分 ...

最新文章

  1. idea没有错误出现红色波浪线怎么去掉?
  2. 如何取得Win7文件的管理员权限?
  3. C语言signal()函数(通过设置一个函数(回调函数)来处理捕获到异常信号时需要执行的操作)
  4. 一加3t刷机后还卡_OPPO A5?A7?A57?刷机注意:这几款手机千万别混淆!
  5. java 不能反序列化_java中的序列化与反序列化
  6. 如何使用Node.js和CloudFormation在AWS Lambda中构建和部署GraphQL服务器
  7. Xcode6中自动布局autolayout和sizeclass的使用
  8. 浅入浅出 Java 排序算法
  9. 51黑单片机论坛c语言,51黑论坛_51单片机轻松入门—基于STC15W4K系列
  10. c语言自学教程——字符函数和字符串函数
  11. 小样本学习记录————利用所有数据的元学习Few-shot Text Classification with Distributional Signatures
  12. GPS坐标间距离计算
  13. 地图分幅编号C 语言编程,地图分幅编号的计算
  14. 怎样提高英语思维能力?
  15. 问题十四:怎么可视化球的法向量
  16. hadoop入门介绍(一)
  17. 每日加瓦,终成栋房4-final、内部类、权限修饰符
  18. URLRewrite地址重定向的实现
  19. 软件开发项目经理岗位职责
  20. 天猫精灵实现误无醒词推送断网负载播报

热门文章

  1. android设置标题颜色设置颜色,设置标题背景颜色
  2. Go语言源码中Replacer查找部份的笔记
  3. 2016推免面试经历纪实——四川大学计算机学院
  4. Your Command Line Tools are too outdated
  5. Vue打包出现Browserslist: caniuse-lite is outdated
  6. 学的java,想问问现在想做电商的项目怎末样?
  7. 数模技术转换应用于计算机控制,数模转换器的作用
  8. Linux程序设计——用getopt处理命令行参数
  9. 康宁发布第五代大猩猩玻璃 坚韧度更强更耐摔
  10. ptp精准时间协议_精确时间协议PTP研究