有3000T煤,
距离1000KM
每次最多运1000T 每KM消耗1T煤
求最大运输量
这个题目本身有点复杂,但是还是做出来了,
如果用程序算,求思路

解决方案 »

  1.   

    http://coolshell.cn/articles/4429.html
      

  2.   

    因为是3000吨的煤总量,所以将路线分割为3段,也就是中间设置两个节点。三段路程分别是x/y/z。
    原因如下:
    让3000吨货物到第一个节点时能留下2000吨煤,
    让2000吨货物到第二个节点时能留下1000吨煤,
    这样最后火车可以满载1000吨煤走剩下的最后一段路线,达到运载货物最多的目的。
    (总之,每个节点都要有1000整数的煤,以达到最大化,避免零头浪费)第1个节点公式
    公式 3000-5x=2000,得出x=200第2个节点公式
    公式 2000-3y=1000,得出y=333.3循环
    则 z=1000-x-y=466.6循环最后剩余1000-z=533.3循环吨煤
      

  3.   

    看来我是太笨了,还不如小学生.  static void Main()
            {
                List<int> list = new List<int>();
                for (int x =200, y = 0; x >= 200 && y <= 1000 / 3.0; x++, y++)
                {
                    if(5*x+3*y>=2000)
                    {
                        list.Add(x);
                    }
                }
                Console.WriteLine("最远的距离:{0}", list.Max());
                Console.ReadLine();
            }
      

  4.   

    这个题目,今天下午研究了很久……
    和大家分享一下思路。
    1.         5*X>=1000
    2.         3*X+5*Y>=2000
    3.         3*Y<=1000
    条件1和2或者2和3可以解出方程结果.   
      

  5.   

    楼主还是没懂……
    你给的自己的思路中,为什么要分三部分??不会不明白吧……
    给你一个不等条件,要是明白了,你就懂了.
    200<=X<Y<=1000/3
      

  6.   


    我觉得分 的段约少约好(总共3000T要走1000KM 最多只能剩下2000T但是车子不行 最多只能装1000T),但是分两段肯定不行(用脚指头想出来的),试试分三段 可以了。所以就三段啊。或者可以这样想 3000T 煤 最多可以供3辆车走完路程。要是多分了 段 那得多跑一个折返。自己再次用脚指头想想。 哎 三次真好,一晚上也够了,不多不少
      

  7.   

    咱俩的思路一样。。
    之所以为什么要去始发点三次?
    因为有3000T煤,每次最多只能运1000,所以,至少三趟。
    为何不>3?因为跑的次数越多,消耗的煤就越多,省的就越少。
      

  8.   

    总数量不定,解决方案就不确定。
    例如,总共有1000T煤,你说最多运多远?
    这种情况是不是应该车满载,运行500KM。