求一个算法:有M个去往不同目的的人,有N辆座位数不同的车,怎么能算出用最少的车把这些人送到目的地?要求每辆车直达。 

解决方案 »

  1.   

    "有M个去往不同目的的人"——是每个人都去不同的地方吗?如果是,那么这样的话就说明有M个不同的地方。
    "要求每辆车直达"——是每个车终点只能是M个地方中的一个吗?如果是,那么这样的话,当N<M时,这N辆车同时送M中的N个人去各自的目的地,那么这就涉及到车辆是否返回。按上面那个条件的话,这M个人分别到往不同的地方最少需要M车次。那么题干中座位数不定就没有意义了。
    感觉给的信息太少,也可能是我晕了。。
      

  2.   


    其实就是单位有N辆班车,想把单位的员工送往不同的目的地,一辆车只有一个目的地,不返回。
    M个人有X(X<M)个目的地。
    单位想尽量节省资源。尽量少出车。
      

  3.   


    其实就是单位有N辆班车,想把单位的员工送往不同的目的地,一辆车只有一个目的地,不返回。
    M个人有X(X<M)个目的地。
    单位想尽量节省资源。尽量少出车。
    我觉得应该用到数理统计吧。这是具体情况,你得把M个人的X个目的地做规划,判断哪些目的地是顺路的,那么顺路的出一辆车就可以。首先你得列出X个目的地,M个人到X个目的地的具体情况,然后对N辆车进行分配。去往同一个或顺路目的地的人多的使用大车,少的人使用小车。还有就是考虑如果只有一个或极少数人去往一个目的地,是否还派班车的情况。这个还是得具体问题具体分析。算法得必须有确定性。
      

  4.   

    先定义M个地点,然后让X个人员报名需要去的地点。得到每个地点要去的人数f(M,y)。这时候才可以讨论你的N辆车要怎么配置,是不是还要再购买新的车辆。
    单位班车为例,X以及f(M,y)又都是变量,那么N的分配也会相应产生变化。这里不会有什么牛逼到不行的算法一次解决所有问题。