Re: [问题] 大地排关问题

楼主: bleed1979 (十三)   2014-03-01 01:52:44
给出跑不完结果的程式:
http://pastie.org/8812754
http://ideone.com/0aZL0G
对战组合状态24个,加上(6-8/2)*6=12个休关,总数36
基本上一开始产生状态就不要考虑会重复。
也就是产生不重复的所有状态再加上休关共36个。
程式执行结果:
list size is 24
1_8
1_7
1_6
1_5
1_4
1_3
2_8
2_7
2_6
2_5
2_4
2_3
3_8
3_7
3_6
3_5
4_8
4_7
4_6
4_5
5_8
5_7
6_8
6_7
sleep
sleep
sleep
sleep
sleep
sleep
sleep
sleep
sleep
sleep
sleep
sleep
total need 36
6
(cpu i7-3770,5分钟连6个时段都跑不完)
代码很简单,有写错或问题可以提出讨论。
程式可以提供进行修改。
※ 引述《qaz00123 (00123)》之铭言:
: 本身不是资工系但是以前有稍微接触算法
: 最近刚好营队要排对战表想说自己来写写看
: 大概规则是 ( 文字表达能力薄弱orz 文末附上对战表的大概样子 )
: n关 m小队
: 总共有n个时段,
: 每小队都要玩到每一关,
: 每个时段中每关要有两个小队在同一关
: 同个时段不可以有小队同时出现在不同的两关
: 每关会休关 n-m/2 个时段
: 尽量不重复对上之前对过的小队
: 目前想法是用DFS慢慢找
: 每找到一组可行的解就记录对上重复小队的次数
: 然后找最小的。
: 想问问看有没有更好的方法?
: ( 虽然我还在磨DFS要怎么实做出来orz )
: ======================================================
: 对战表大概是 (假设是六关八小)
: 时段一 时段二 时段三 时段四 时段五 时段六
: 第一关 1vs2 休关 休关
: 第二关 3vs4 休关 休关
: 第三关 休关 休关
: 第四关 5vs6 休关 休关
: 第五关 7vs8 休关 休关
: 第六关 休关 休关
: ======================================================
: 先谢谢大家:D
作者: qaz00123 (00123)   2014-03-01 23:19:00
我在来试试看 谢谢:D

Links booklink

Contact Us: admin [ a t ] ucptt.com