P1570 KC 喝咖啡

news/2024/12/16 15:48:58/文章来源:https://www.cnblogs.com/ssoiRoor/p/18610330

不在赘述题目了。

这是一道典型的分数规划题目。可以参考一下 https://oi-wiki.org/misc/frac-programming/ 的内容。这里主要讲一下笔者自己在做题时遇到的一些困惑。

为什么可以二分

我们以$x[i]=1$表示取第$i$种材料,$x[i]=0$表示不取。那么最后的答案会有$ans=\sum\frac{v[i]x[i]}{c[i]x[i]}$

我们将该式子变形一下,变成$\sum c[i]x[i]ans-\sum v[i]x[i]=0$,因此,可以设$F(ans)=\sum c[i]x[i]ans-\sum v[i]x[i]$

因为$\sum c[i]x[i]$显然为正数,所以$F(ans)$单调,所以可以通过二分找零点。

为什么可以贪心

现在确定了二分的可行性,需要考虑如何二分,也即考虑check函数。

假设我们现在二分出了一个答案$ans_{mid}$,我们要考虑这个答案的可行性,也即比较$ans_{mid}$和$\sum\frac{v[i]x[i]}{c[i]x[i]}$,注意到我们要求最大值,如果我们能找到一组合法的$x[i]$使得$\sum\frac{v[i]x[i]}{c[i]x[i]}>ans_{mid}$,也即存在一种取法比当前答案更大,这代表我们答案可以更大。

但是我们发现$\sum\frac{v[i]x[i]}{c[i]x[i]}>ans_{mid}$不好判断,因此将该式子变形成$\sum x[i](c[i]ans-v[i])<0$这个式子和前面的式子是等价的,但是这个式子和零比较,更好判断。现在我们只要找到一种取法能使得变形后的式子小于零,那么就能使原式成立,也即答案可以更大。那么显然,想找是否存在一组取法让式子小于零,那就取$c[i]ans-v[i]$最小的就好。因此贪心也成立。

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

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

相关文章

FastExcel 合并单元格(相当的行数据,进行合并)

目录需求思路实现Excel导出单元格全量合并策略日期格式转换接口代码ServiceDTO 使用FastExcel数据导出:官网: https://idev.cn/fastexcel/zh-CN 需求 信用代码、填报人,唯一时,将:信用代码、单位名称、填报人,进行 row 合并,并垂直居中对齐思路 这边不需要做列合并,所…

街面环卫算法视频分析服务器浅析智能视频监控在智慧城市的应用与趋向

在数字化浪潮的推动下,智慧城市的建设已成为全球范围内城市发展的重要趋势。智慧城市不仅仅是技术的集合,它更是一个系统工程,涉及到城市管理的各个方面,旨在通过高科技手段提升城市的运行效率和居民的生活质量。 其中,智能视频监控技术作为智慧城市建设的关键组成部分,正…

嘻嘻嘻嘻嘻测试下

凡你能说的,你说清楚。凡你不能说的,留给沉默!

算法网关视频分析网关无线视频监控技术如何以智能化手段提升抗干扰与数据安全效果

在当今这个信息化快速发展的时代,无线技术的应用已经渗透到我们生活的方方面面,尤其是在视频监控领域,无线传输技术正以其独特的优势,改变着传统的监控系统部署方式。本文将探讨无线视频监控业务的发展情况、面临的挑战以及如何通过技术手段提高系统的抗干扰能力和数据安全…

打破局限!如何在项目管理中运用鱼骨图分析法

一、鱼骨图分析法在项目管理中的重要性简述在项目管理的漫长旅程中,我们常常会遭遇到各种各样棘手的问题,这些问题就像隐藏在暗处的礁石,随时可能让项目的 “船只” 偏离航线,甚至搁浅。小到团队成员之间沟通不畅,导致工作衔接出现缝隙;大到项目进度严重延误,成本超出预…

使用wsimport命令生成webService客户端代码

wsimport 是 JDK 自带的一个工具,可以根据 WSDL 文件生成 Java 类。 1.进入JDK/bin目录,从地址栏进入cmd 2.执行如下命令:wsimport -keep -s D:\tmp -p com.cn.phone -verbose http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl-keep:是否生成java源文件 -s:指…

实验6 模板类、文件I/O和异常处理

1.实验任务1 运行代码: Complex.h:#pragma once#include <iostream> #include <stdexcept>// 声明 //////////////////////////////////////////////////// // 复数模板类声明 template<typename T> class Complex { public:Complex(T r = 0, T i = 0);Comp…

人员乘坐皮带识别智慧矿山一体机:矿山达到智能化最终要求需要哪些AI算法及关键因素?

在数字化转型的大潮中,非煤矿山行业正站在智能化升级的风口浪尖。随着人工智能、大数据、物联网等技术的飞速发展,矿山智能化已成为提升行业竞争力、保障作业安全、优化资源利用的关键路径。 本文将深入探讨实现矿山智能化所需的AI算法及其应用,并分析在构建智能化矿山生态系…

容器与虚拟机的区别与关系

什么是虚拟机技术? 传统的虚拟机技术(VMware)将一组硬件虚拟化,在其上安装并运行一个完整的操作系统,然后在该系统上运行所需的应用进程;虚拟机就像一台主机。 什么是容器? 容器是一个应用层面的抽象,用于将代码和依赖资源打包在一起。本文分享自天翼云开发者社区《容器…

数理统计中的分位数

目录上分位数和下分位数的定义下分位数的直观理解上分位数的直观理解常用分布中的分位数正态分布卡方分布 上分位数和下分位数的定义 设连续型随机变量 \(X\) 的分布函数为 \(F(x)\),概率密度函数为 \(f(x)\),则:对于任意正数 \(\alpha(0<\alpha<1)\),称满足条件\[F(…

SWD下载口的端口状态

1、关于SWD SWD是MCU下载程序和调试的端口,分为四线制和五线制 四线制:VCC GND SWDIO SWCKL 五线制:VCC GND SWDIO SWCLK RESET 四线制没有留出RESET引脚,没有RESET引脚,下载完程序,会自动运行。SWDIO是双向数据线,实现数据的输入和输出。SWCLK是 时钟信号线。 2、SWD电…

工作睡觉监测识别摄像机

工作睡觉监测识别摄像机是一种用于监测员工是否在工作时间内偷懒、打瞌睡或者进行其他不合规行为的智能监控设备。这种摄像机利用先进的人工智能和图像识别技术,能够实时监测员工的工作状态,发现异常行为并采取相应的措施。工作睡觉监测识别摄像机是一种用于监测员工是否在工…