求C#算法 有3000T煤,距离1000KM每次最多运1000T 每KM消耗1T煤求最大运输量这个题目本身有点复杂,但是还是做出来了,如果用程序算,求思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://coolshell.cn/articles/4429.html 因为是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循环吨煤 看来我是太笨了,还不如小学生. 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(); } 这个题目,今天下午研究了很久……和大家分享一下思路。1. 5*X>=10002. 3*X+5*Y>=20003. 3*Y<=1000条件1和2或者2和3可以解出方程结果. 楼主还是没懂……你给的自己的思路中,为什么要分三部分??不会不明白吧……给你一个不等条件,要是明白了,你就懂了.200<=X<Y<=1000/3 我觉得分 的段约少约好(总共3000T要走1000KM 最多只能剩下2000T但是车子不行 最多只能装1000T),但是分两段肯定不行(用脚指头想出来的),试试分三段 可以了。所以就三段啊。或者可以这样想 3000T 煤 最多可以供3辆车走完路程。要是多分了 段 那得多跑一个折返。自己再次用脚指头想想。 哎 三次真好,一晚上也够了,不多不少 咱俩的思路一样。。之所以为什么要去始发点三次?因为有3000T煤,每次最多只能运1000,所以,至少三趟。为何不>3?因为跑的次数越多,消耗的煤就越多,省的就越少。 总数量不定,解决方案就不确定。例如,总共有1000T煤,你说最多运多远?这种情况是不是应该车满载,运行500KM。 如何根据进程打开相应的窗体? 请教各位关于动态生成treeView节点的小问题 WPF中BackgroundWorker组件调用ActiveX组件中的耗时的方法,却无法实现异步调用! 反射不到程序集 郁闷的SQL执行效率问题. 请问在VS2005中怎样浏览XML数据库 哪位大哥能给我发一个烧DVD的DLL文件! 数组转化成DATATable的方法? 用C#怎么样实现备份数据库与恢复数据库功能呀? timer 调试的问题,求帮助 页面选择路径 求一个能够格式化包含混合中英文字符的函数?
原因如下:
让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循环吨煤
{
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();
}
和大家分享一下思路。
1. 5*X>=1000
2. 3*X+5*Y>=2000
3. 3*Y<=1000
条件1和2或者2和3可以解出方程结果.
你给的自己的思路中,为什么要分三部分??不会不明白吧……
给你一个不等条件,要是明白了,你就懂了.
200<=X<Y<=1000/3
我觉得分 的段约少约好(总共3000T要走1000KM 最多只能剩下2000T但是车子不行 最多只能装1000T),但是分两段肯定不行(用脚指头想出来的),试试分三段 可以了。所以就三段啊。或者可以这样想 3000T 煤 最多可以供3辆车走完路程。要是多分了 段 那得多跑一个折返。自己再次用脚指头想想。 哎 三次真好,一晚上也够了,不多不少
之所以为什么要去始发点三次?
因为有3000T煤,每次最多只能运1000,所以,至少三趟。
为何不>3?因为跑的次数越多,消耗的煤就越多,省的就越少。
例如,总共有1000T煤,你说最多运多远?
这种情况是不是应该车满载,运行500KM。