现当前航班有10个架次,每个航班都需保障清洁这个环节,其中保障时间是30分钟。保障环节需要2人。只有一号部门负责这个环节,而且这个部门下有5名员工.这5名员工(A,B,C,D,E)的班制是干1休2.其中A,B为老员工其余的为新员工,现要分配工作,其中新员工的平均工作量要比老员工的工作量多,且不能超出20%如何分配这几个人工作?(求算法)

解决方案 »

  1.   

    JAVA经典算法:http://blog.csdn.net/a125138/article/details/7756609
    http://blog.csdn.net/a125138/article/details/7752973
    希望对楼主有所帮助
      

  2.   


    Map<String, Integer> map  = new HashMap<String, Integer>() ;
    map.put("A", 1) ;
    map.put("B", 0) ;
    map.put("C", 0) ;
    map.put("D", 0) ;
    map.put("E", 0) ;
    for (int i = 1; i < 10; i++) {
    for (int j = 1; j < 3;j++) {
    if(map.get("A")==1){
    map.put("A", 0) ;
    map.put("C", 1) ;
    System.out.println(i+"号为A和C15分钟");
    } else
    if(map.get("C")==1){
    map.put("C", 0) ;
    map.put("D", 1) ;
    System.out.println(i+"号为C和D15分钟");
    } else
    if(map.get("D")==1){
    map.put("D", 0) ;
    map.put("E", 1) ;
    System.out.println(i+"号为D和E15分钟");
    }else
    if(map.get("E")==1){
    map.put("E", 0) ;
    map.put("B", 1) ;
    System.out.println(i+"号为E和B15分钟");
    } else
    if(map.get("B")==1){
    map.put("B", 0) ;
    map.put("A", 1) ;
    System.out.println(i+"号为B和A15分钟");
    }
    }
    }这样可以吗
      

  3.   

    楼主啊,你这个肯定是少了条件了,否则是无解的你看你这三个条件:
    1、当前航班有10个架次;
    2、保障环节需要2人,班制是干1休2;
    3、部门下有5名员工:ABCDE那么我们按顺序来:
    航班1:A + B;
    航班2:C + D;
    航班3:E + ? //此时AB才休息1次,CD刚干完还没休息,去哪找人跟E干航班3??
      

  4.   


    你这一下子又把题目整得简单到不用计算了总共就3名员工,班制是 干1休2,那就只能轮轴转了航班1:A;
    航班2:B;
    航班3:C;
    航班4:A; // 此时只有A休息了2论,没得选了