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

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

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int t = sc.nextInt();Integer[] s = new Integer[n]; // 存排序后的索引值int[] m = new int[n]; // 重量int[] v = new int[n]; // 价值for (int i = 0; i < n; i++) {s[i] = i; // 填充索引值}for (int i = 0; i < n; i++) {m[i] = sc.nextInt();v[i] = sc.nextInt();}// 性价比从高到低排序Arrays.sort(s, (a, b) -> {double r1 = (double) v[a] / m[a];double r2 = (double) v[b] / m[b];return Double.compare(r2, r1);});double ans = 0;for (int i = 0; i < n; i++) {if (t - m[s[i]] >= 0) {t -= m[s[i]];ans += v[s[i]];} else {ans += (double) v[s[i]] / m[s[i]] * t; // 剩余容量塞满break;}}System.out.printf("%.2f", ans);}
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.xdnf.cn/news/16326.html

相关文章:

  • 二分查找-268.丢失的数字-力扣(LeetCode)
  • ABP VNext + Razor 邮件模板:动态、多租户隔离、可版本化的邮件与通知系统
  • java面试题1
  • IOPaint 图像修复工具,学习笔记
  • openmv识别数字
  • 质数、因数、最大公约数经典问题整理
  • KNN 算法进阶:从基础到优化的深度解析
  • lesson24:Python的logging模块
  • 将文件移入回收站而不是直接删除
  • 7月25号打卡
  • 太极生两仪,两仪生四象,四象生八卦
  • 13.使用C连接mysql
  • Windows Server 2003 R2系统C盘扩容教程
  • 【深度学习新浪潮】Claude code是什么样的一款产品?
  • 【Linux系统】基础IO(下)
  • 常见问题三
  • linux 进程信号
  • 佳能iR-ADV C5560复印机如何扫描文件到电脑
  • Gorm教程 - 关联
  • 电厂液压执行器自动化升级:Modbus TCP与DeviceNet的协议贯通实践
  • 微观低代码
  • SpringBoot实战指南:从快速入门到生产级部署(2025最新版)
  • 【运维】ubuntu 安装图形化界面
  • Vue2下
  • SQLFluff
  • Hive-vscode-snippets
  • [特殊字符] 第9篇:《SQL高阶 SELECT 技巧:DISTINCT、ORDER BY、LIMIT 全家桶》
  • CN3798-2A 降压型单节锂电池充电芯片
  • Androidstudio 上传当前module 或本地jar包到maven服务器。
  • 二分查找----6.寻找两个正序数组的中位数