求个JAVA的算法给思想也行

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:07:19
求最大利润 总时间不能超过200小时
名称 钱 制造时间
Compact $10,000 20
Sedan $20,000 30
Wagon $30,000 35
Offroad Motorcycle $12,000 15
Road Motorcyle $10,000 12

http://hi.baidu.com/peiwenlin/blog/item/6e983b465c40e40e6b63e5de.html
也是在网上找的,其实没看懂,呵呵。
个人觉得应该先算出每个工作的每小时效益
工作 利益 时间 利益/小时
Compact 10,000 20 500
Sedan 20,000 30 666.6666667
Wagon 30,000 35 857.1428571
Offroad Motorcycle 12,000 15 800
Road Motorcyle 10,000 12 833.3333333
一定是先尽量干单位利益最多的,剩下的时间干次多的,以此类推。
按照上面的算法,最后的结论是5个wagon和2个road motorcycle,共199小时,获利$170,000

按照背包问题的话

就是要先干 时间最长的
先干 Wagon 再干 Sedan

给你个算法吧
time =200
while(time>35){
time-35
}
while(time>30){
time-30}
while(time>20){
time-20}
while(time>15){
time-15}

y=a*10+b*20+c*30+d*12+e*10;
200>=a/20+b/30+c/35+d/15+e/12;
200/20>a>0;
200/30>b>0;
200/35>c>0;
200/15>d>