7-8 循环日程安排问题
7-8 循环日程安排问题
用分治法求解循环日程安排问题。设有n=2 k个选手要进行网球循环赛,要求设计一个满足以下要求的比赛日程表:
(1)每个选手必须与其他n-1个选手各赛一次。
(2)每个选手一天只能赛一次。
(3)循环赛在n-1天之内结束。
输入样例:
输入K值。
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>
int n;
int a[10100];
void print()
{for(int i=1;i<=n;i++)printf("%d ",a[i]);printf("\n");
}
void schange()
{int temp;for(int i=1;i<=n-1;i+=2){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
}
void bchange(int x)
{int temp;for(int i=1;i<=n-2*x+1;i+=2*x){for(int j=i;j<i+x;j++){temp=a[j];a[j]=a[j+x];a[j+x]=temp;}}
}
int main()
{scanf("%d",&n);n=pow(2,n);for(int i=1;i<=n;i++)a[i]=i;print();int i;for(i=1;i<n/2;i++){if(i%2!=0){schange();print();}else{schange();bchange(i);print();}}for(int i=1;i<=n/2;i++){a[i]=n/2+i;a[n/2+i]=i;}print();for(i=1;i<n/2;i++){if(i%2!=0){schange();print();}else{schange();bchange(i);print();}}return 0;
}
202206222118三
7-8 循环日程安排问题相关推荐
- C语言--分治法经典例题--循环日程安排问题
问题描述: 有size=2^n个选手要进行网球循环赛,设计一个满足以下要求的比赛日程表.满足每个选手必须和其他n-1个选手各赛一次.每个选手每一天只能赛一次.循环赛在n-1天内结束. 解法: 这个图标 ...
- ieda中快捷搜索_快捷指令(07)早上好(三)播报当日日程安排。
机型:iPhone XR 系统:iOS13.2.3 快捷指令最新版 今天开始着手制作知友们留言最多的"早上好",今天先学习第三部分:播报当日日程安排. 首先我们来播放一下查看下效果 ...
- 会议室日程安排问题(python贪心算法)
会议室日程安排问题(最少需要多少个会议室) 按照贪心算法,此问题可以得到最优解!原来是按结束时间排序,但这样的话并不是最少的会议室数(下面有反例)而要得到最少的会议室数,需要将议程时间按开始时间排序. ...
- 日历日程安排表格calendar
自定义vue日历组件,可用于日程安排,人员分工 组件:引用了moment插件和iview的日期选择组件 <template><div class="canlendar-co ...
- win7系统下比较好用的桌面日程安排提醒软件是什么?
win7系统下比较好用的桌面日程安排提醒软件是什么? win7系统的电脑上可以将便笺添加到桌面,用来记录待办事项.安排任务清单,虽然系统便笺能起到日程安排的作用,但是却不能进行直观的日程提醒.win7 ...
- 循环赛日程安排问题(分治法)
问题描写叙述: 设有n(n=2^k)支队伍參加循环赛,循环赛共进行n-1天,每支队伍要与其它n-1支队伍比赛一场, 且每支队伍每天必须比赛一场,不能轮空.试按此要求为比赛安排日程. 算法思路: 我们先 ...
- 利用ASP.NET日期控件制作“会议日程安排”(贴首页过把瘾)
本文转载自: https://www.cnblogs.com/peaceli/archive/2012/08/06/1359862.html 作者:peaceli 转载请注明该声明. 大家应该比较熟悉 ...
- 循环赛日程安排(C语言)
问题: (先声明一点,下面我写了两种代码,但是都只能满足 队伍数 = 2的幂次方 的情况) 一年一度的欧洲冠军杯马上就要打响,在初赛阶段采用循环制,设共有n队参加,初赛共进行(n-1)天,每队要和其他 ...
- php日程提醒,window_Win10的日历应用中怎么新增日程安排及提醒?,Win10 内置“日历”应用 - phpStudy...
Win10的日历应用中怎么新增日程安排及提醒? Win10 内置"日历"应用,可以方便地向它里面添加日程安排项目.既可以直接在日历应用中点击添加,也可以让小娜通过语音或文字输入添加 ...
最新文章
- Nature:根系菌群参与磷胁迫和免疫的平衡
- linux 重新加载驱动程序,在linux中模拟设备驱动程序崩溃。让python重新加载i
- 【NLP-ChatBot】我们熟悉的聊天机器人都有哪几类?
- 从今天开始研究Flex的相关项目开发
- SpringBoot集成Mybatis(0配置注解版)
- java开发课程表_展示Java开发人员课程包
- 阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较
- 信息学奥赛一本通(2071:【例2.14】平均分)
- Ubuntu安装Go语言环境
- VB.NET中DataGridView控件
- JSP+JavaBean+Servlet工作原理实例讲解
- 监听下拉框,当前选中值
- linux下实现getch()函数的功能,Linux下实现getch()函数功能
- Spring Cloud 基础教程 - 程序猿DD
- SVN多项目共享导出及故障处理
- 区块链应用 | 直击“区块链”:概念火爆背后 是技术还是利益在驱动?
- 微信小程序连接MySQL数据库
- vi与gedit的区别
- 电脑黑客或电脑天才方面的电影
- FPGA访问SRAM