比赛日程安排程序
来源:互联网 发布:淘宝返利网排行 编辑:程序博客网 时间:2024/04/29 13:36
比赛日程安排程序设计的关键在于理解分治法,和递归。
另外将日程分治后,又要考虑如何将分开的日程合并,这就需要程序设计者自己观察,总结规律。
//比赛日程安排#include <stdio.h>#define MAXN 64int a[MAXN][MAXN + 1] = {0};void gamecal (int k, int n) //处理k开始的n个选手的日程{int i, j;if(n == 2){a[k][1] = k; //参赛选手编号a[k][2] = k + 1; //对阵选手编号a[k + 1][1] = k + 1; //参赛选手编号a[k + 1][2] = k; //对阵选手编号}else{gamecal(k , n/2);gamecal(k + n/2, n/2);for(i = k; i < k + n/2; i++) //填充右上角{for(j = n/2 + 1; j <= n; j++){a[i][j] = a[i + n/2][j - n/2];}}for(i = k + n/2; i < k + n; i++) //填充左下角{for(j = n/2 + 1;j <= n; j++ ){a[i][j] = a[i - n/2][j - n/2];}}}}int main(){int m, i, j;printf("输入参赛选手人数: ");scanf("%d", &m);j =2;for(i = 2; i < 8; i++){j = j * 2;if(j == m) break;}if(i >= 8){printf("参赛选手人数必须为2的整数次幂,且不超过64!\n");return 0;}gamecal(1, m);printf("\n编号");for(i = 2; i <= m; i++) printf("%2d天",i - 1);printf("\n");for(i = 1; i <= m; i++){for(j = 1; j <= m; j++)printf("%4d", a[i][j]);printf("\n");}return 0;}
- 比赛日程安排程序
- 比赛日程安排
- 比赛日程安排算法
- 比赛日程安排 hihoCoder1670
- 比赛日程安排(JAVA实现)
- 分治算法---乒乓球比赛日程安排
- 分治算法:乒乓球比赛的日程安排
- 日程安排
- 递归分治实现比赛日程安排(仅对2…
- 程序比赛小胜
- 乒乓球单打比赛程序模拟
- 日程安排提醒
- 日程安排软件
- 日程安排问题
- 【程序8】乒乓球比赛赛程安排
- 【程序22】两个乒乓球队进行比赛
- 五子棋比赛程序对战平台
- 小码哥杯java程序比赛复习(四)多态
- XMPP 协议分析(二)
- 解决Eclipse maven servlet-api-2.5.jar jar not loaded问题
- 细说智能卡加密狗
- USACO1.4.1Packing Rectangles解题报告
- XMPP 协议分析(一)
- 比赛日程安排程序
- PyMining
- iOS 截屏
- WEB服务器、应用程序服务器区别
- POJ 1837 Balance (DP)
- 几种基本的数字正则表达式【转】
- UVA 10815 - Andy's First Dictionary(字符串)
- 解析XMPP协议分析与应用
- 二叉树的三种遍历