首页 > 编程语言 >打卡信奥刷题(286)用C++工具信奥P2240[普及组/提高] 【深基12.例1】部分背包问题

打卡信奥刷题(286)用C++工具信奥P2240[普及组/提高] 【深基12.例1】部分背包问题

时间:2024-11-22 14:46:49浏览次数:3  
标签:12 信奥 int 金币 le swap ans 打卡 100

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

题目描述

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

输入格式

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

接下来 N N N 行,每行两个整数 m i , v i m_i,v_i mi​,vi​。

输出格式

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

样例 #1

样例输入 #1

4 50
10 60
20 100
30 120
15 45

样例输出 #1

240.00

C++实现

#include<bits/stdc++.h>
using namespace std;
int n;
double t,v[101],w[101],a[101],ans;
int main(){
cin>>n>>t;
for(int i=1;i<=n;i++) {
cin>>w[i]>>v[i];
a[i]=v[i]/w[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<n;j++)
{
if(a[j]<a[j+1])
{
swap(a[j],a[j+1]);
swap(v[j],v[j+1]);
swap(w[j],w[j+1]);
}
}
}
for(int i=1;i<=n;i++) {
if(t-w[i]>-0.000001){
t-=w[i];
ans+=v[i];
}
else{
ans+=t*a[i];
break;//跳出循环
}
}
printf(“%.2lf”,ans);
return 0;
}

在这里插入图片描述
接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

标签:12,信奥,int,金币,le,swap,ans,打卡,100
From: https://blog.csdn.net/rogeliu/article/details/143914020

相关文章

  • FPGA 第12讲 阻塞赋值和非阻塞赋值
    时间:2024.11.19一、学习内容1.阻塞赋值   阻塞赋值的赋值号用“=”表示。   对应的电路结构往往与触发沿没有关系,只与输入电平的变化有关系。阻塞赋值的操作可以认为是只有一个步骤的操作,即计算赋值号右边的语句并更新赋值号左边的语句,此时不允许有来自任何其......
  • 20241122电路板维修入门之集成块焊接篇
    在没有热风焊台的情况下,也可考虑用烙铁配合焊锡来拆除或焊接集成块,它的方法是用烙铁在芯片的各个引脚都堆满焊锡,然后用烙铁循环把焊锡加热,直到所有的引脚焊锡都同时熔化,就可以把芯片取下来了。把芯片从电路板上取下来,可以考虑用细铜丝从芯片的引脚下穿过,然后从上面用手提起。......
  • 20241121电路板维修入门之CPU断针焊接篇
    CPU断针的情况很常见,370结构的赛扬一代CPU和P4的CPU针的根部比较结实,断针一般都是从中间折断,比较容易焊接,只要在针和焊盘相对应的地方涂上焊膏,上了焊锡后用烙铁加热就可以焊上了,对于位置特殊,不便用烙铁的情况可以用热风焊台加热。赛扬二代的CPU的针受外力太大时往往连根拔起,且......
  • QT 线程 QThread QT5.12.3环境 C++实现
    一、线程  QT主线程称为GUI线程,负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。如果把一些比较复杂或者费时的操作放在主线程中,界面就会出现卡顿或者无响应的现象。一般主线程负责影响界面上的操作,子线程负责负责费时的数据处理。二、使用多线程有什么好......
  • QT基础 编码问题 定时器 事件 绘图事件 QT5.12.3环境 C++实现
    一、编码问题        在计算机编程中,流(Stream)是一种抽象的概念,用于表示数据的输入或输出。根据处理数据的不同方式,流可以分为字节流(ByteStream)和字符流(CharacterStream)两大类。1.字节流(ByteStream)        字节流是处理数据的基本单位是字节(8位二进制数......
  • QT基础 窗体 对话框 文件 QT5.12.3环境 C++实现
    一、堆栈窗体1.概念是一种界面设计思路,多个窗体重叠在一起,通过点击对应的按钮,显示对应的界面。2.相关方法PublicFunctions  QStackedWidget(QWidget*parent=0)  //stack如果单纯指定父窗口,但是没有指定大小,那么是不显示的  intaddWidget(QWidget*......
  • LT1121IST-5#TRPBF 规格书 数据手册具有关断功能的微功率低压差稳压器芯片
    LT1121/LT1121-3.3/LT1121-5是具有关断功能的微功率低压差稳压器。这些设备能够以0.4V的压降提供150mA的输出电流。这些设备设计用于电池供电系统,低静态电流(30µA运行,16µA关断)使其成为理想的选择。静态电流得到良好控制,不会像许多其他低压差PNP稳压器那样在压降时上升。LT1121/L......
  • 20241120>Win10/11 干净安装后一些提升效率的快捷命令CMD小帮手
    重装win? ?一些提升效率的快捷命令CMD小帮手,   如果使用笔记本电脑会有些卡顿,那可能得调整一下电源模式.  用管理员打开cmd或者powershell,输入以下命令行: 卓越性能:   powercfg-duplicateschemee9a42b02-d5df-448d-aa00-03f14749eb61 高性能模式......
  • 1121-括号匹配
    括号匹配题目大意:给出包括大中小括号随机排列的一个Strings,判断是否为左右闭合(左右括号顺序对应)解题思路:利用栈的特性去解决该问题,需要考虑边界栈空的情况题解及注释:classSolution{//定义一个hashMap用于匹配括号右边privatestaticfinalMap<Character,Chara......
  • 计算机视觉 | 注意力机制】12种即插即用涨点模块分享!含注意力机制、卷积变体、Transfo
    即插即用模块1.**GAM-全局注意力机制**2.**STN-空间变换网络**3.**SENet-挤压和激励网络**4.**DConv-动态卷积**5.**FAN-完全注意力网络**6.**CA-协调注意力**7.**ASFF-自适应空间特征融合**8.**CFNet-全新多尺度融合**9.**simAM-简单无参数......