当前位置: 首页 > news >正文

题解:洛谷 P2240 【深基12.例1】部分背包问题

【题目来源】

洛谷:P2240 【深基12.例1】部分背包问题 - 洛谷 (luogu.com.cn)

【题目描述】

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

【输入】

第一行两个整数 \(N,T\)

接下来 \(N\) 行,每行两个整数 \(m_i,v_i\)

【输出】

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

【输入样例】

4 50
10 60
20 100
30 120
15 45

【输出样例】

240.00

【解题思路】

image

【算法标签】

《洛谷 P2240 部分背包问题》 #贪心#

【代码详解】

#include <bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;// 定义硬币结构体
struct coin 
{int m;      // 硬币的质量int v;      // 硬币的价值double avg; // 单位质量的价值
} cs[105];      // 最多105个硬币// 自定义排序比较函数:按单位价值从高到低排序
bool cmp(coin c1, coin c2) 
{return c1.avg > c2.avg;
}int main() 
{int n, t, mark = 0;  // n:硬币数量, t:背包容量, mark:当前处理的硬币索引double ans = 0;       // 最终获得的总价值// 输入硬币数量和背包容量cin >> n >> t;// 输入每个硬币的质量和价值,并计算单位价值for (int i = 0; i < n; i++) {cin >> cs[i].m >> cs[i].v;cs[i].avg = 1.0 * cs[i].v / cs[i].m;}// 按单位价值从高到低排序sort(cs, cs + n, cmp);// 贪心算法:优先拿单位价值高的硬币while (t >= cs[mark].m && mark < n) {t -= cs[mark].m;      // 减去已拿硬币的质量ans += cs[mark].v;    // 加上已拿硬币的价值mark++;               // 处理下一个硬币}// 处理剩余容量(拿部分硬币)if (mark < n && t > 0) ans += t * cs[mark].avg;  // 按比例拿部分硬币// 输出结果,保留两位小数printf("%.2f", ans);return 0;
}

【运行结果】

4 50
10 60
20 100
30 120
15 45
240.00
http://www.jsqmd.com/news/389963/

相关文章:

  • 写作压力小了,AI论文工具千笔 VS 万方智搜AI,研究生专属高效之选!
  • OpenClaw,重新定义AI Agent,一款真正可用的个人智能助手操作系统
  • ▲8FSK调制解调+扩频解扩通信链路matlab误码率仿真
  • 题解:洛谷 P1010 [NOIP 1998 普及组] 幂次方
  • 题解:洛谷 P1259 黑白棋子的移动
  • 完整教程:CI/CD 核心原则 + 制品管理全解析:落地要求 + 存储方案
  • 题解:洛谷 P3612 [USACO17JAN] Secret Cow Code S
  • 题解:洛谷 P1498 南蛮图腾
  • 题解:洛谷 P1228 地毯填补问题
  • 探索CNN - BILSTM - Attention多特征分类预测:Matlab实现与分析
  • 实测才敢推!更贴合研究生需求的降AIGC软件 千笔·专业降AI率智能体 VS 灵感风暴AI
  • 真的太省时间! 降AIGC工具 千笔·专业降AI率智能体 VS 学术猹 本科生专属
  • 题解:洛谷 P1990 覆盖墙壁
  • 写作小白救星:AI论文工具 千笔AI VS Checkjie,专科生专属神器!
  • 生产环境【Kotlin系列15】多平台开发实战:一次编写,多端运行最佳实践与性能优化
  • 关闭Edge浏览器的“两指在触控板上往左滑是后退;往右划是前进”
  • 【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(13):単語文法】
  • 题解:洛谷 P2437 蜜蜂路线
  • 题解:洛谷 P1928 外星密码
  • 题解:洛谷 P1164 小A点菜
  • 深入解析:Hologres Dynamic Table 在淘天价格力的业务实践
  • 题解:洛谷 P1464 Function
  • 标准 Hough 变换、修正 Hough 变换和序列 Hough 变换三种典型航迹起始算法研究附Matlab代码
  • 交稿前一晚!8个降AIGC工具测评:自考降AI率必备攻略
  • 差分进化算法(DE)与缩放因子自适应差分进化(SHADE)在CEC2005函数寻优中的性能研究附Matlab代码
  • 这次终于选对!8个AI论文平台测评:本科生毕业论文写作必备工具推荐
  • WOA-SVM时序预测模型研究——基于鲸鱼优化算法的支持向量机时序预测方法附Matlab代码
  • 表贴式PMSM的直接转矩控制(DTC)仿真模型附Simulink仿真
  • 比较CVaR最优投资组合与均值-方差投资组合以及其他模型,包括全局最小方差(GMVP)和市场投资组合附Matlab代码
  • 这次终于选对!8个一键生成论文工具:自考毕业论文+开题报告高效写作测评