Java实现 蓝桥杯 算法提高 快乐司机
算法提高 快乐司机
时间限制:1.0s 内存限制:256.0MB
问题描述
“嘟嘟嘟嘟嘟嘟
喇叭响
我是汽车小司机
我是小司机
我为祖国运输忙
运输忙”
这是儿歌“快乐的小司机”。话说现在当司机光有红心不行,还要多拉快跑。多拉不是超载,是要让所载货物价值最大,特别是在当前油价日新月异的时候。司机所拉货物为散货,如大米、面粉、沙石、泥土…
现在知道了汽车核载重量为w,可供选择的物品的数量n。每个物品的重量为gi,价值为pi。求汽车可装载的最大价值。(n<10000,w<10000,0<gi<=100,0<=pi<=100)
输入格式
输入第一行为由空格分开的两个整数n w
第二行到第n+1行,每行有两个整数,由空格分开,分别表示gi和pi
输出格式
最大价值(保留一位小数)
样例输入
5 36
99 87
68 36
79 43
75 94
7 35
样例输出
71.3
解释:
先装第5号物品,得价值35,占用重量7
再装第4号物品,得价值36.346,占用重量29
最后保留一位小数,得71.3
import java.math.BigDecimal;
import java.util.Scanner;public class 快乐司机 {public static void main(String args[]) {@SuppressWarnings("resource")Scanner input = new Scanner(System.in);
// 输入货物种类int classes = input.nextInt();
// 输入总载货量float weight = input.nextFloat();float each_price[] = new float[classes];float each_weight[] = new float[classes];
// 输入每种货物的价值和重量for(int i =0;i<classes;i++) {each_weight[i] = input.nextFloat();each_price[i] = input.nextFloat();}
// 测试输入数据的正确性
// for(int i = 0;i<classes;i++) {
// System.out.println("wight:"+each_weight[i]+" price:"+each_price[i]);
// }float benefit[] = new float[classes];
// 计算每种货物的价值比for(int i = 0;i<classes;i++) {benefit[i] = each_price[i] / each_weight[i];BigDecimal b = new BigDecimal(benefit[i]); benefit[i] = b.setScale(3,BigDecimal.ROUND_HALF_UP).floatValue(); }// 测试货物价值比正确性
// for(int i = 0;i<classes;i++) {
// System.out.println(benefit[i]);
// }float sum_weight = 0;float sum_price = 0;int k = 0;float max;for(int i = 0;i<classes;i++) {max = 0;
// 寻找最大价值比商品for(int j = 0;j<classes;j++) {if(benefit[j] >= max) {max = benefit[j];k = j;}}
// System.out.println("benefit:"+benefit[k]+" index:"+k);
// 将当前货物的全部装入货车if(sum_weight + each_weight[k] <= weight) {sum_price += each_price[k];sum_weight += each_weight[k];}
// 将当前货物的部分装入货车else {sum_price += (weight - sum_weight) * benefit[k];break;}benefit[k] = -1;}
// 保留一位小数并输出总价值BigDecimal b = new BigDecimal(sum_price); sum_price = b.setScale(1,BigDecimal.ROUND_HALF_UP).floatValue(); System.out.println(sum_price);}}
Java实现 蓝桥杯 算法提高 快乐司机相关推荐
- 蓝桥杯算法提高 快乐司机
原题: 算法提高 快乐司机 时间限制:1.0s 内存限制:256.0MB 问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌&qu ...
- 蓝桥杯 算法提高 快乐司机
问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌"快乐的小司机".话说现在当司机光有红心不行,还要多拉快跑.多拉 ...
- Java实现 蓝桥杯 算法提高 小X的购物计划
试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...
- Java实现 蓝桥杯 算法提高 成绩排名
试题 算法提高 成绩排名 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明刚经过了一次数学考试,老师由于忙碌忘记排名了,于是老师把这个光荣的任务交给了小明,小明则找到了聪明的你, ...
- Java实现 蓝桥杯 算法提高 Monday-Saturday质因子
试题 算法提高 Monday-Saturday质因子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子 ...
- Java实现 蓝桥杯 算法提高 秘密行动
试题 算法提高 秘密行动 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小D接到一项任务,要求他爬到一座n层大厦的顶端与神秘人物会面.这座大厦有一个神奇的特点,每层的高度都不一样, ...
- Java实现 蓝桥杯 算法提高 奥运会开幕式
试题 算法提高 奥运会开幕式 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长 ...
- Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)
试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ...
- Java实现蓝桥杯 算法提高 身份证号码升级
算法提高 身份证号码升级 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位 ...
最新文章
- time datetime
- C mysql添加_MYSQL将表 B C 插入表A方法
- Linux MySQL 忘记root 密码
- java ArrayList排序
- kernelbasedll下载_kernel32.dll
- GeneXus笔记本—城市级联下拉
- 自定义搜索框,带提示信息的搜索框
- 微信做了个新功能,网友并不买账:就为了给QQ充会员?
- sublime怎么运行go_使用SublimeGDB调试Go程序
- mysql smallint int_mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- python入门视频教程-Python入门视频全套教程
- 如何使用DevStack在Ubuntu 18.04上安装OpenStack
- xcode6.1中 symbolicatecrash位置
- eclipse快捷键 自动生成get set方法,转到所调用的方法
- 架构篇--系统监控--spring-boot2.0.X 系统原生信息监控,SQL信息监控,cpu温度监控报警,cup磁盘内存使用率监控报警,自定义端点监控以及子节点获取,系统异常邮件通知
- RestSharp是什么?
- android蓝牙健康 iee,Wi-Fi RTT(IEEE 802.11mc)
- Java 多线程设计模式
- 野派,阡陌人生路,泪断愁肠,滚滚红尘中,情留心房
- Centos7中查看IP命令
热门文章
- 改善编程体验: IdeaVimExtension介绍 1
- 【笔试——腾讯2021实习笔试题第二次2021.4.4】第3题 n人高空过钢索
- web兼容性面试题及答案
- Oracle打补丁步骤
- 14年至22年,我与世界杯的那些二三事
- 从Eclipse中导入项目到AndroidStudio中
- Android开发 .9图 使用备忘
- 《精力管理》读书笔记——第一部分
- 赛酷软件测试自学,赛酷ocr怎么用 赛酷ocr使用方法
- 【正点原子FPGA连载】第七章 Verilog HDL语 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0