南沙C++信奥赛陈老师解一本通题 1225:金银岛

 【题目描述】

某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有ss个种类, 每种金属重量不同,分别为n1,n2,...,nsn1,n2,...,ns,同时每个种类的金属总的价值也不同,分别为v1,v2,...,vsv1,v2,...,vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割的,并且金属的价值和其重量成正比。

【输入】

第1行是测试数据的组数kk,后面跟着kk组输入。

每组测试数据占3行,第1行是一个正整数w(1≤w≤10000)w(1≤w≤10000),表示口袋承重上限。第2行是一个正整数s(1≤s≤100)s(1≤s≤100),表示金属种类。第3行有2s2s个正整数,分别为n1,v1,n2,v2,...,ns,vsn1,v1,n2,v2,...,ns,vs分别为第一种,第二种,...,第ss种金属的总重量和总价值(1≤ni≤10000,1≤vi≤10000)(1≤ni≤10000,1≤vi≤10000)。

【输出】

kk行,每行输出对应一个输入。输出应精确到小数点后22位。

【输入样例】

2
50
4
10 100 50 30 7 34 87 100
10000
5
1 43 43 323 35 45 43 54 87 43

【输出样例】

171.93
508.00
#include <bits/stdc++.h>
using namespace std;
struct Node
{int w;int v;double unit;
};
Node a[1001];
bool cmp(Node n1,Node n2)
{return n1.unit>n2.unit;
}
int main()
{int k,s,n;cin>>k;while(k--){cin>>n>>s;double ans=0;for(int i=1;i<=s;i++){cin>>a[i].w>>a[i].v;a[i].unit=a[i].v*1.0/a[i].w;}sort(a+1,a+1+s,cmp);		//按单价从大到小排序 for(int i=1;i<=s;i++){if(n>=a[i].w)	//全装下还有剩 {ans+=a[i].w*a[i].unit;n-=a[i].w;}else //不够装 只装n {ans+=n*a[i].unit;break;}}printf("%.2lf\n",ans);}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827720.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

精准、智能、高效:AI平台如何提升医疗数据处理效率50%

思通数科的大模型是一款集成自然语言处理、多模态分析与知识图谱技术的智能系统,专为提升行业信息处理效率和决策支持而设计。该模型依托深度学习与数据驱动,能够在合同审查、智能问答、医疗文本处理等场景中实现精准的文本分类、信息抽取与风险识别。特别在多模态数据处理方…

MySQL 8.0 执行COUNT()很慢原因分析

MySQL 8.0 执行COUNT()很慢原因分析 1.1 问题描述 线上 MySQL8.0.32 环境在执行 SELECT COUNT (1) FROM t0 获取表行数很慢,同样场景下该 SQL 在 MySQL5.7 环境很快就能拿到结果 1.2 问题复现 测试版本:8.0.25 MySQL Community Server - GPL 和 5.7.21-log MySQL Community S…

DAC控制LM358输出4~20ma电路

在带负载0~800Ω左右,电流并不会发生偏差使用注意事项有些时候LM358内部的运放不一定都使用到在使用画PCB和原理图的时候要注意输入端不能直接接地,否则芯片会发烫。并且给出TI的LM358部分说明以及未使用时的处理方法。

mac 关闭所有浏览器的前进后退功能

系统偏好设置 => 触控板 => 更多手势 => 在页面之间轻扫 取消勾选即可。如下图所示:

科陆电子:从卷到赢,连接型CRM助力营销服全链路质、效双飞跃

深圳市科陆电子科技股份有限公司是美的集团旗下企业,于1996年在深圳成立,主板上市企业(2007年在深交所上市,股票代码002121)、国家高新技术企业,拥有国家认定企业技术中心和多个国家级、省级技术中心、实验室。公司主营业务聚焦在智能电网和新型电化学储能两大板块,战略愿景是成…

bug解决记录:前端解密后的中文是问号的解决办法

最近的项目中,遇到了这个问题,我们的容灾环境要进行演练,但是进行切换到容灾环境的时候,发现返回的中文都是?问号 解决思路: 1.先看下接口的请求头和响应头是不是指定了这个编码格式。排查出来发现都是有的 2.看下解密和加密是否有指定编码格式设置字符 byte[] bytes = s…

sqlserver 数据库连接异常 SqlClient.SqlException (0x80090325): 证书链是由不受信任的颁发机构颁发的

异常 解决方案: 数据库连接增加“TrustServerCertificate=True;” 完整连接Server=.;Database=TestDb;User Id=sa;Password=aaaaa;Encrypt=True;TrustServerCertificate=True;TrustServerCertificate=True 表示这将强制客户端在不验证的情况下信任证书参考

Frequent Directions

目录概Frequent DirectionsFrequent Directions over Slidding Windows代码Ghashami M., Liberty E., Phillips J. M. and Woodruff D. P. Frequent directions : Simple and deterministic matrix sketching. 2015.Yin H., Wen D., Li J., Wei Z., Zhang X., Huang Z. and Li …

Nuxt.js 应用中的 prerender:routes 事件钩子详解

title: Nuxt.js 应用中的 prerender:routes 事件钩子详解 date: 2024/11/6 updated: 2024/11/6 author: cmdragon excerpt: prerender:routes 是 Nuxt.js 中的一个钩子,允许开发者在预渲染过程中扩展要预渲染的路由列表。这对于静态站点生成(SSG)尤为重要,开发者可以根据…

Springboot 容器启动之后初始化操作

在项目开发中,有时候会在 Spring 应用启动后做一些初始化的操作,比如数据字典缓存,状态通知,配置读取等操作。 SpringBoot 提供了多种方式可以让开发者在容器启动后来执行一个任务:使用 @PostConstruct 注解 通过 ApplicationListener 监听SpringBoot 启动过程中的发布的 …

RAID

1.RAIDRAID0:最少1块硬盘、总容量=硬盘数x硬盘容量、没有数据冗余备份。坏1块则全部数据坏。但是读写性能很高RAID1:2块硬盘、总容量 = 总硬盘容量的一半、数据镜像备份。坏1块硬盘不影响全盘存储。读取性能提升,但写入性能略有降低RAID5:至少需要3块硬盘组成、总容量 = n-…