标题:这道题把我困扰好久,求指点。
只看楼主
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
结帖率:87.5%
已结贴  问题点数:20 回复次数:28 
这道题把我困扰好久,求指点。
4. B D E 在周日那天必须休息。

    5. A E 周三必须上班。

    6. A C 一周中必须至少有4天能见面(即同时上班)。

    你的任务是:编写程序,列出ABCDE所有可能的一周排班情况。工作日记为1,休息日记为0
   
    A B C D E 每人占用1行记录,从星期一开始。

【输入、输出格式要求】

    程序没有输入,要求输出所有可能的方案。

    每个方案是7x5的矩阵。只有1和0组成。        
   
    矩阵中的列表示星期几,从星期一开始。

    矩阵的行分别表示A,B,C,D,E的作息时间表。

    多个矩阵间用空行分隔开。

    例如,如下的矩阵就是一个合格的解。请编程输出所有解(多个解的前后顺序不重要)。

0110111
1101110
0110111
1101110
1110110


  小弟不才,被这道题困了很久。
  第一次用的穷举法,准备暴力破解。但是发现性能太差,在规定的3分钟时间内无法输出。
  最后一行 永远是 1110110
但是其他行的穷举方法不会,希望大神给点思路,不需要代码。谢谢。
搜索更多相关主题的帖子: 矩阵 作息时间 编写程序 休息日 
2013-04-21 19:13
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
4、5、6?那1、2、3呢?总的空间看似很大,但遍历时配合剪枝应该很快。

重剑无锋,大巧不工
2013-04-21 19:21
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
得分:0 
不懂,,学习
2013-04-21 20:31
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:0 
最简单的思路用if进行判断,但是估计时间复杂度很大,你用数据结构吧!可以存储第一个人的状态,然后将后面几个一次比较存入,最后输出即使满足条件的

Maybe
2013-04-21 21:33
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
得分:0 
菜鸟来学习下
2013-04-21 21:38
scuddym
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-21
得分:0 
菜鸟
2013-04-22 11:00
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
望数据结构方面想想吧

三十年河东,三十年河西,莫欺少年穷!
2013-04-22 11:48
dengluoy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:127
专家分:165
注 册:2013-2-5
得分:0 
呵呵,原来这道题目。。楼主愿意一起沟通沟通么。

一同学习, 一同进步
2013-04-22 16:44
c人er
Rank: 2
来 自:武汉理工大学
等 级:论坛游民
帖 子:45
专家分:56
注 册:2013-3-22
得分:0 
不懂,来学习

超英赶美若等闲…
2013-04-22 17:10
dengjianqing
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-15
得分:0 
34 int main()
 35 {
 36    int A,B,C,D,E,tmp;
 37    A=B=C=D=E=tmp=0;
 38    for(A=16;A<con;A++)
 39       if((A&16)!=0&&gq4(A))
 40          for(E=16;E<con;E++)
 41            if(((E&1)!=1)&&((E&16)!=0))
 42               for(C=0;C<con;C++)
 43                  {
 44                     tmp=A&C;
 45                     if(gq4(tmp))
 46                        for(D=0;D<con;D++)
 47                           if((D&1)!=1)
 48                              for(B=0;B<con;B++)
 49                                 if((B&1)!=1)
 50                                    myprint(A,B,C,D,E);
 51                  }
 52 }
2013-04-22 17:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-405071-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.887857 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved