---==高分求算法或思路==-- 这个问题,我有c的源代码,但是没有java的程序!他的解是不唯一的,如果,你需要的话,我可以明天给你!我下班后,回家拿! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想将所有的选手分为两半,则n个选手的比赛日程表可以通过n/2个选手的比赛日程表来决定。递归地用这种一分为二的思想对选手进行划分,直到只剩下两个选手。这时只要让这两个选手进行比赛日程安排就可以了。意思也就是将N(N=2^k)除以2除上K次,最后将变成二人,制定出二人的日程表后,四人的也就不难了,然后再推到八人,然后以2^k增即可。以下是8人(N=2^3 当K=3)时的日程表:日期 1 2 3 | 4 5 6 7--------------选手| 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图为八个选手的比赛日程表,选手下面的数字代表选手的号码,日期右边的数字代表的为比赛的日期,将日期与选手交叉的数字代表的是这位选手当天所对阵的选手的号码,其中左上角与左下角的两小块分别为选手1至选手4和选手5至选手8前3天的比赛日程。据此,将左上角小块中的所有数字按其相对位置抄到右下角,又将左下角小块中的所有数字按其相对位置抄到右上角,这样就可以分别安排好选手1至选手4和选手5至选手8在后4天的比赛日程。所以,虽然比赛有N-1天,但我开始只需算出(N-1-1)/2天的日程安排即可,后面的(N/2+1)的日程只需将左上角与左下角的两小块以及左下角与右上角的安排互换即可!!呵,也不知大家看明白没有!~!想法是这样,但是我用Java实现的时候却被for和数组搞得理不清思绪了,希望各位有兴趣的兄弟帮忙实现一下,如果写出了代码请贴下面,好让大家都看看!~~ 你的递归算法我没弄明白,我想到了一个苯方法:求出所有的2人组合,即n*(n-1)/2个组合,然后每天取n-1个,我觉得这样比较容易实现。 Dream_lover()兄:每位选手每天只允许比赛一场,你那样取的话大概会出现一天比赛多场的问题吧 为什么内部类不能有static成员? java有趣的小题,无分看题 怎样复制文件夹下的所有文件 菜!!!!!!!! 奇怪的数组列表? 请教一个java的语法问题,不知道是不是java的bug????? 高分请教一个基础问题! 大家学习一门语言需要多少时间? mysql数据库的转码问题,急急急! JDK1.4连接SQL SERVER 2K,用哪个JDBC驱动好点?请说明理由。 如何在网站服务器端取连接的客户端机器的主板信息?UP有分 高手解惑!JAVA手机开发!
以下是8人(N=2^3 当K=3)时的日程表:日期 1 2 3 | 4 5 6 7
--------------
选手|
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图为八个选手的比赛日程表,选手下面的数字代表选手的号码,日期右边的数字代表的为比赛的日期,将日期与选手交叉的数字代表的是这位选手当天所对阵的选手的号码,其中左上角与左下角的两小块分别为选手1至选手4和选手5至选手8前3天的比赛日程。据此,将左上角小块中的所有数字按其相对位置抄到右下角,又将左下角小块中的所有数字按其相对位置抄到右上角,这样就可以分别安排好选手1至选手4和选手5至选手8在后4天的比赛日程。所以,虽然比赛有N-1天,但我开始只需算出(N-1-1)/2天的日程安排即可,后面的(N/2+1)的日程只需将左上角与左下角的两小块以及左下角与右上角的安排互换即可!!呵,也不知大家看明白没有!~!想法是这样,但是我用Java实现的时候却被for和数组搞得理不清思绪了,希望各位有兴趣的兄弟帮忙实现一下,如果写出了代码请贴下面,好让大家都看看!~~