当前位置:   article > 正文

题目 1917: 蓝桥杯-快乐司机

题目 1917: 蓝桥杯-快乐司机

题目描述:

"嘟嘟嘟嘟嘟嘟
喇叭响
我是汽车小司机
我是小司机
我为祖国运输忙
运输忙"
这是儿歌“快乐的小司机”。话说现在当司机光有红心不行,还要多拉快跑。多拉不是超载,是要让所载货物价值最大,特别是在当前油价日新月异的时候。司机所拉货物为散货,如大米、面粉、沙石、泥土......
现在知道了汽车核载重量为w,可供选择的物品的数量n。每个物品的重量为gi,价值为pi。求汽车可装载的最大价值。(n<10000,w<10000,0<gi<=100,0<=pi<=100)

代码:

  1. package lanqiao;
  2. import java.util.*;
  3. public class Main {
  4. public static void main(String[] args) {
  5. Scanner sc = new Scanner(System.in);
  6. int n = sc.nextInt(); //数量
  7. int w = sc.nextInt(); //载重
  8. double[] gi = new double[n]; //重量
  9. double[] pi = new double[n]; //价值
  10. double[] arr = new double[n];
  11. for(int i = 0;i < pi.length;i ++)
  12. {
  13. gi[i] = sc.nextDouble();
  14. pi[i] = sc.nextDouble();
  15. arr[i] = pi[i] / gi[i];
  16. }
  17. for(int i = 0;i < arr.length - 1;i ++)
  18. {
  19. for(int j = 0;j < arr.length - i - 1;j ++)
  20. {
  21. //排序
  22. if(arr[j]<arr[j+1]){
  23. double g =gi[j];
  24. gi[j]=gi[j+1];
  25. gi[j+1]=g;
  26. double p =pi[j];
  27. pi[j]=pi[j+1];
  28. pi[j+1]=p;
  29. double a =arr[j];
  30. arr[j]=arr[j+1];
  31. arr[j+1]=a;
  32. }
  33. }
  34. }
  35. double sum = 0;
  36. for(int i = 0;i < arr.length;i ++)
  37. {
  38. if(w >= gi[i]){
  39. sum += pi[i];
  40. w -= gi[i];
  41. }else{
  42. sum += w * arr[i];
  43. break;
  44. }
  45. }
  46. System.out.printf("%.1f",sum);
  47. }
  48. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/216166
推荐阅读
相关标签
  

闽ICP备14008679号