首页 > 其他分享 >P2240 【深基12.例1】部分背包问题

P2240 【深基12.例1】部分背包问题

时间:2022-10-30 16:22:31浏览次数:29  
标签:12 int 深基 P2240 金币 le 背包 100

题目描述

阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有 N(N \le 100)N(N≤100) 堆金币,第 ii 堆金币的总重量和总价值分别是 m_i,v_i(1\le m_i,v_i \le 100)mi​,vi​(1≤mi​,vi​≤100)。阿里巴巴有一个承重量为 T(T \le 1000)T(T≤1000) 的背包,但并不一定有办法将全部的金币都装进去。他想装走尽可能多价值的金币。所有金币都可以随意分割,分割完的金币重量价值比(也就是单位价格)不变。请问阿里巴巴最多可以拿走多少价值的金币?

输入格式

第一行两个整数 N,TN,T。

接下来 NN 行,每行两个整数 m_i,v_imi​,vi​。

输出格式

一个实数表示答案,输出两位小数

输入输出样例

输入 #1
4 50
10 60
20 100
30 120
15 45
输出 #1
240.00

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 struct gold{
 4     int m; //重量 
 5     int v; //总价值 
 6     double price; //单价 
 7 }g[1000];
 8 bool cmp(gold a,gold b){
 9     return a.price>b.price;
10 };
11 int main(){ //P2240 【深基12.例1】部分背包问题
12     int n; //n堆金币 
13     int t; //承重量为 t 的背包
14     double total=0; //背包里已经装进去的东西的最大价值 
15     cin>>n>>t;
16     for(int i=0;i<n;i++){
17         cin>>g[i].m>>g[i].v;
18         g[i].price=g[i].v*1.0/g[i].m;
19     }
20     sort(g,g+n,cmp);
21     int i=0;
22     while(t){
23         
24         if(g[i].m<=t){
25             t-=g[i].m;
26             total+=g[i].v;
27         }else{
28             total+=g[i].price*t;
29             break;
30         }
31         i++; 
32         if(i==n) break;  //如果金子装完了背包依然没装满,跳出 
33     }
34     cout<<fixed<<setprecision(2)<<total;
35     return 0;
36 }

 

标签:12,int,深基,P2240,金币,le,背包,100
From: https://www.cnblogs.com/geyang/p/16841543.html

相关文章

  • R代做编程辅导:CSC120 Predicting Future Values Of A Time Sequence
    全文链接:tecdat.cn/?p=29694IntroductionUT的R语言,比起上次的A1,这次的竟然要求画56张图,真是丧心病狂。使用Dataframes去读取数据,然后运算,然后写函数去运算,不能使用index......
  • 20201208史逸霏第六章学习笔记
    6.1~6.3信号和中断中断:中断是I/O设备发送到CPU的外部请求,将CPU从正常执行转移到中断处理。信号:信号是发送给进程的请求,将进程从正常执行转移到中断处理。中断的类型:......
  • 12.17个提升开发效率的“轮子”(3)
    8.IOUtilsIO流在我们日常工作中也用得比较多,尽管java已经给我们提供了丰富的API。但我们不得不每次读取文件,或者写入文件之后,写一些重复的的代码。手动在finally代码块......
  • 12.项目统一异常处理
    项目统一异常处理项目中可能存在不可预知的各种异常,如:空指针,数组越界等。针对这类异常,可以直接在异常处理器中统一处理;还有一类是可预知的错误,如图片不合法,验证码错误等......
  • 【XSY3312】路径(path)(trick)
    原题就不说了,记录一下其中要用的一个trick。定理:对于一个\(1\simn\)的随机排列,它的前缀最大值的期望个数为\(O(\logn)\)。证明:考虑元素\(x\)作为前缀最大值的概......
  • 【XSY2912】reo(构造)
    考虑先找到一个原树的根。对于第一种限制,\(b\)不能作为根。对于第二种限制,\(a\)不能作为根。找到可以作为根的一个点\(rt\),显然由于限制互不矛盾肯定能找到。对于第......
  • HCIA-ICT实战基础12-网络设备安全特性
    HCIA-ICT实战基础-网络设备安全特性目录常见设备安全加固策略网络设备安全加固部署示例本机防攻击配置1常见设备安全加固策略1.1为什么需要网络设备安全网络安全......
  • WIN2012远程桌面授权服务器许可证问题解决方法
    WIN2012服务器报错为由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系。原因是服务器安装了远程桌面服务RemoteApp,这个是需要授权的。微......
  • 软考中级(软件设计师)——面向对象技术(上午12分)(下午30分)(超重点)
    软考中级(软件设计师)——面向对象技术(上午12分)(重点)目录​​软考中级(软件设计师)——面向对象技术(上午12分)(重点)​​​​面向对象的基本概念(★★★★★)​​​​面......
  • AcWing 1209. 带分数
    题目条件:枚举全排列,是9个数a,b,c的位数都还不知道枚举a,b,c的位数,枚举a和b的位数,c=9-a-b判断等式是否成立//暴力dfs#include<iostream>#include<cstrin......