循环赛日程表问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 2 3 5 2 1 4 6
* a , i图示t n
隐藏
e n d | | 第 r n第 第 第 第 ; 二 - 三 t a五 六 s 四 天 天 r t 天 天 天
3 4 1 7 4 3 2 8 5 6 7 8 1 6 5 6 2 7 8 5 6 3
第 七 天 8 7 6 5 4 3
s t a r t + 1 ; s t a r t ; } i n t
——每个选手一天只能赛一场;
——循环赛一共进行n - 1 天。
2013-6-1
3/9
解题思路
问题描述: 具体
n=1
——每个选手必须与其他n - 1 个选手各赛一场; ——每个选手一天只能赛一场; ——循环赛一共进行n - 1 天。
抽象
选手 1 第一天赛事
n=2
选手 1 2
第一天赛事 2 1
4/9
2013-6-1
a [ s t a r t 3] [ 1 1] 4 2
=7
a [ s t a r t 5+ 1 ] 7[ 1 ] 1 = 6 8 2 4
r e t u r n ;7 8
m i d =
7
8
5
6
6
5Hale Waihona Puke Baidu
2
4
4
3
1
2
2
1
7/9
2013-6-1
( e n d
+
程序实现
p y ( i n t e s t a r = 0 ) n = = n m i d 2 ; ( i n t ; i < = f o ; j + + { a [ i - m ] [ j - m ] } 2013-6-1 v o i d c o s t a r t , i { i f ( s t a r t < i n t 1 ; i n t m i n t s t a r t ) / f o r i = m i d + 1 { j = m ; j < n n t * * a , i n图示 t 隐藏 n d ) t > = e n d | | r e t u r n ; 第 e n d 选 - 第 s t 第 r t第 第 a 第 + 一 二 三 四 五 六 手 / 2 ; 天 天 天 天 天 天 = ( e n 2d 3 + 4 5 6 7 1
7
8
2013-6-1
8
7
5
6
6
5
2
4
4
3
1
2
2
1
6/9
程序实现
v o i d t a s t a r t , i { i f ( s t a r t < i n t + 1 ; i f ( { b l e ( i n t * n t e n d ) s t a r t > = = 0 ) r e t第 u 选 手 n = e n d一 天 n = = 2 )
华南师范大学计算机学院 – 计算机算法
循环赛日程表
作者:杨劲松
2013-6-1
内容提要
问题描述 解题思路 程序实现
2013-6-1
2/9
问题描述
问题描述:
设有n(n = 2k)位选手参加网球循环赛,循环赛共进行n-1天,每位选 手要与其他n-1位选手比赛一场,且每位选手每天必须比赛一场,不能轮 空。 ——每个选手必须与其他n - 1 个选手各赛一场;
程序实现
2013-6-1
9/9
2 3 1 4 4 1 3 2 6 7 5 6 7 2 1 4 3 8 5 6 3 4 1 2
第 七 天 8 7 6 5 4 3 2 1
8/9
e n d ; i + 3+ ) 1 8 4 2 r ( i n t 6 7 8 1 5 ) 6 5 8 7 2 a [ i ] 8[ j ] 6 = 7 5 2 ; 8 7 6 5 4
解题思路
问题描述: 具体
n=4
——每个选手必须与其他n - 1 个选手各赛一场; ——每个选手一天只能赛一场; ——循环赛一共进行n - 1 天。
抽象
选手 1 2 3 4 第一天 2 1 4 3 第二天 3 4 1 2 第三天 4 3 2 1
2013-6-1
5/9
解题思路
n=8 选手 1 2 3 4 5 6 第一天 2 1 4 3 6 5 第二天 3 4 1 2 7 8 第三天 4 3 2 1 8 7 第四天 5 6 7 8 1 2 第五天 6 5 6 7 2 1 第六天 7 8 5 6 3 4 第七天 8 7 6 5 4 3
* a , i图示t n
隐藏
e n d | | 第 r n第 第 第 第 ; 二 - 三 t a五 六 s 四 天 天 r t 天 天 天
3 4 1 7 4 3 2 8 5 6 7 8 1 6 5 6 2 7 8 5 6 3
第 七 天 8 7 6 5 4 3
s t a r t + 1 ; s t a r t ; } i n t
——每个选手一天只能赛一场;
——循环赛一共进行n - 1 天。
2013-6-1
3/9
解题思路
问题描述: 具体
n=1
——每个选手必须与其他n - 1 个选手各赛一场; ——每个选手一天只能赛一场; ——循环赛一共进行n - 1 天。
抽象
选手 1 第一天赛事
n=2
选手 1 2
第一天赛事 2 1
4/9
2013-6-1
a [ s t a r t 3] [ 1 1] 4 2
=7
a [ s t a r t 5+ 1 ] 7[ 1 ] 1 = 6 8 2 4
r e t u r n ;7 8
m i d =
7
8
5
6
6
5Hale Waihona Puke Baidu
2
4
4
3
1
2
2
1
7/9
2013-6-1
( e n d
+
程序实现
p y ( i n t e s t a r = 0 ) n = = n m i d 2 ; ( i n t ; i < = f o ; j + + { a [ i - m ] [ j - m ] } 2013-6-1 v o i d c o s t a r t , i { i f ( s t a r t < i n t 1 ; i n t m i n t s t a r t ) / f o r i = m i d + 1 { j = m ; j < n n t * * a , i n图示 t 隐藏 n d ) t > = e n d | | r e t u r n ; 第 e n d 选 - 第 s t 第 r t第 第 a 第 + 一 二 三 四 五 六 手 / 2 ; 天 天 天 天 天 天 = ( e n 2d 3 + 4 5 6 7 1
7
8
2013-6-1
8
7
5
6
6
5
2
4
4
3
1
2
2
1
6/9
程序实现
v o i d t a s t a r t , i { i f ( s t a r t < i n t + 1 ; i f ( { b l e ( i n t * n t e n d ) s t a r t > = = 0 ) r e t第 u 选 手 n = e n d一 天 n = = 2 )
华南师范大学计算机学院 – 计算机算法
循环赛日程表
作者:杨劲松
2013-6-1
内容提要
问题描述 解题思路 程序实现
2013-6-1
2/9
问题描述
问题描述:
设有n(n = 2k)位选手参加网球循环赛,循环赛共进行n-1天,每位选 手要与其他n-1位选手比赛一场,且每位选手每天必须比赛一场,不能轮 空。 ——每个选手必须与其他n - 1 个选手各赛一场;
程序实现
2013-6-1
9/9
2 3 1 4 4 1 3 2 6 7 5 6 7 2 1 4 3 8 5 6 3 4 1 2
第 七 天 8 7 6 5 4 3 2 1
8/9
e n d ; i + 3+ ) 1 8 4 2 r ( i n t 6 7 8 1 5 ) 6 5 8 7 2 a [ i ] 8[ j ] 6 = 7 5 2 ; 8 7 6 5 4
解题思路
问题描述: 具体
n=4
——每个选手必须与其他n - 1 个选手各赛一场; ——每个选手一天只能赛一场; ——循环赛一共进行n - 1 天。
抽象
选手 1 2 3 4 第一天 2 1 4 3 第二天 3 4 1 2 第三天 4 3 2 1
2013-6-1
5/9
解题思路
n=8 选手 1 2 3 4 5 6 第一天 2 1 4 3 6 5 第二天 3 4 1 2 7 8 第三天 4 3 2 1 8 7 第四天 5 6 7 8 1 2 第五天 6 5 6 7 2 1 第六天 7 8 5 6 3 4 第七天 8 7 6 5 4 3