7月17日刷题记录 分治Getting!循环比赛日程表
通过数:1 ┭┮﹏┭┮
qdoj.xyz 1053 分治-循环比赛日程表


其实今天晚上留给编程的时间并不多,做出一道。。。
不过收获还是非常大的
毕竟本人从来没有学习过分治算法,今天竟然攻克了我人生中的第一道 分治算法题 !!
题目如下:

那么这一道题怎么做呢
提示
以表格的中心为拆分点,将表格分成A、B、C、D四个部分,就很容易看出有A=D,B=C,并且,这一规律同样适用于各个更小的部分。
那么这就是分治啦
来一段知识讲解


注意看一下上面的“分治法的适用条件”
/*
1053: B05-分治-循环比赛日程表(分治算法)
时间限制: 1 Sec 内存限制: 128 MB
提交: 17 解决: 9
[提交] [状态] [讨论版] [命题人:外部导入]
题目描述
设有n个选手进行循环比赛,其中n = 2m,要求每名选手要与其他n - 1名选手都赛一次,每名选手每天比赛一次,循环赛共进行n - 1天,要求每天没有选手轮空。 输入
一行,包含一个正整数m。 输出
表格形式的比赛安排表(n行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 提示 以表格的中心为拆分点,将表格分成A、B、C、D四个部分,就很容易看出有A=D,B=C,并且,这一规律同样适用于各个更小的部分。 来源/分类
B05-分治 [提交] [状态]
*/
#include<bits/stdc++.h>
using namespace std;
int ans[][];
int main(){
int m;
cin>>m;
int n=<<m;
int h=;
ans[][]=;
for(int x=;x<=m;x++)
{
for(int i=;i<=h;i++)
for(int j=;j<=h;j++)
ans[i][j+h]=ans[i][j]+h;//右上=左上+h
for(int i=;i<=h;i++)
for(int j=;j<=h;j++){
ans[i+h][j+h]=ans[i][j];//右下=左上
ans[i+h][j]=ans[i][j+h]; //左下=右上
}
h*=;
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++)
printf("%3d",ans[i][j]);
printf("\n");
}
return ;
}
代码在此啦

可以辅助理解一下
p.s时间好像不够啦!886~只可意会不可言传
提高组加油!
7月17日刷题记录 分治Getting!循环比赛日程表的更多相关文章
- 7月18日刷题记录 二分答案跳石头游戏Getting
通过数:1 明天就要暑假编程集训啦~莫名开心 今天做出了一道 二分答案题(好艰辛鸭) 1049: B13-二分-跳石头游戏(二分答案) 时间限制: 5 Sec 内存限制: 256 MB提交: 30 ...
- 全国Uber优步司机奖励政策 (1月11日-1月17日)
本周已经公开奖励整的城市有:北 京.成 都.重 庆.上 海.深 圳.长 沙.佛 山.广 州.苏 州.杭 州.南 京.宁 波.青 岛.天 津.西 安.武 汉.厦 门,可按CTRL+F,搜城市名快速查找. ...
- 厦门Uber优步司机奖励政策(1月11日~1月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Python学习日志9月17日 一周总结
周一,9月11日 这天写的是过去一周的周总结,我从中找出当天的内容. 这天早晨给电脑折腾装机,早晨基本上没有学习,休息了一个早晨. 下午写的上周总结,完事做mooc爬虫课的作业,<Think P ...
- 优步UBER司机全国各地奖励政策汇总 (4月11日-4月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 刷题记录:[XNUCA2019Qualifier]EasyPHP
目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...
- DP刷题记录(持续更新)
DP刷题记录 (本文例题目前大多数都选自算法竞赛进阶指南) TYVJ1071 求两个序列的最长公共上升子序列 设\(f_{i,j}\)表示a中的\(1-i\)与b中色\(1-j\)匹配时所能构成的以\ ...
- 攻防世界Web刷题记录(新手区)
攻防世界Web刷题记录(新手区) 1.ViewSource 题如其名 Fn + F12 2.get post 3.robots robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个 ...
- 2016年12月17日 星期六 --出埃及记 Exodus 21:12
2016年12月17日 星期六 --出埃及记 Exodus 21:12 "Anyone who strikes a man and kills him shall surely be put ...
随机推荐
- 买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
- 2019-8-31-git-通过-SublimeMerge-处理冲突
title author date CreateTime categories git 通过 SublimeMerge 处理冲突 lindexi 2019-08-31 16:55:59 +0800 2 ...
- 2019-5-21-win10-uwp-商业游戏-1.1.5
title author date CreateTime categories win10 uwp 商业游戏 1.1.5 lindexi 2019-05-21 11:38:20 +0800 2018- ...
- git 常用操作命令(Common operation)
win10清除已登录账号密码方法 打开控制面板(Control Panel): 选择用户账户(User Accounts): 选择管理你的凭据(Credential Manager): 管理windo ...
- onload事件属性,JQ中的load,ready方法
onload事件属性,JQ中的load,ready方法 前言 页面中的很多操作,需要我们在所需资源下载完成后,才可以进行操作,而资源没有及时下载,我们进行操作的话,是会报错.因此我们需要熟练掌握哪些事 ...
- 一个简单的Web服务器-支持Servlet请求
上接 一个简单的Web服务器-支持静态资源请求,这个服务器可以处理静态资源的请求,那么如何处理Servlet请求的呢? 判断是否是Servlet请求 首先Web服务器需要判断当前请求是否是Servle ...
- Consul etcd ZooKeeper euerka 对比
这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论: Feature Consul zookeeper etcd euerka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,kee ...
- 开篇 | 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?
本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...
- linux_jdk,zookeeper,kafka安装
若是在虚拟机安装最好先进行下面的安装 1.1修改各个虚拟机主机名 vi /etc/sysconfig/network 1.2修改主机名和IP的映射关系 vi /etc/hosts 1.3关闭防火墙 # ...
- 有限状态机FSM和层次状态机HSM
前言 就单片机而言,程序可以分为两类:带操作系统的程序和前后台程序:前后台程序从架构上又分为顺序机和状态机. 广义地说, 任何一个程序都是一个状态机, 因为它总是要记住一些状态, 然后根据输入进行输出 ...