首页 > 其他分享 >01 分数规划

01 分数规划

时间:2024-09-02 22:47:11浏览次数:8  
标签:分数 le frac sum 贡献 01 例题 规划

问题模型

给定 \(a,b\) 两个长度为 \(n\) 的序列,求下列式子最大值:

\[\frac{\sum_{i = 1} ^ {n} a_i · x_i}{\sum_{i = 1} ^ {n} b_i · x_i} \]

其中 \(\forall i \in [1, n], x_i \in \left \{1, 0 \right \}\)。

解法

不妨设我们已经求出了这个最大值 \(k\)。

那么有:

\[\frac{\sum_{i = 1} ^ {n} a_i · x_i}{\sum_{i = 1} ^ {n} b_i · x_i} \le k \]

把分母移过去:

\[\sum_{i = 1} ^ {n} a_i · x_i \le k · \sum_{i = 1} ^ {n} b_i · x_i \]

再移右边:

\[\sum_{i = 1} ^ {n} a_i · x_i - k · \sum_{i = 1} ^ {n} b_i · x_i \le 0 \]

\(k\) 乘进 \(\sum\) 里面:

\[\sum_{i = 1} ^ {n} a_i · x_i - \sum_{i = 1} ^ {n} k · b_i · x_i \le 0 \]

合并 \(\sum\):

\[\sum_{i = 1} ^ {n} a_i · x_i - k · b_i · x_i \le 0 \]

提出 \(x_i\):

\[\sum_{i = 1} ^ {n} x_i · (a_i - k · b_i) \le 0 \]

于是一个整体贡献被我们拆成了单体贡献。

不难发现 \(k\) 影响整个式子的单调性,考虑二分 \(k\)。

此时 \(x_i\) 的取值是由 \(i\) 位置所对应的贡献决定的,把每个贡献算出来之后再去作文章。

举个例子,约束 \(\sum_{i = 1} ^ n [x_i] \le k\) 时,将贡献从大到小排序,至多取前 \(k\) 个大于 \(0\) 的贡献即可。

有时可能会与 01 背包和生成树等结合起来,具体的会在下面的例题部分细讲。

例题

标签:分数,le,frac,sum,贡献,01,例题,规划
From: https://www.cnblogs.com/endswitch/p/18393698

相关文章

  • NetSarang Xshell(SSH客户端软件) v7.0.0169 中文绿色版
    概述NetSarangXshell破解版是一款免费SSH客户端软件的Linux远程监控工具.Xshell中文版,轻松管理远程主机服务器,会话管理器,支持多选项卡管理主机.Xftp7最新版以及Xshell7最新版支持远程协议Telnet,Rlogin,SSH/SSHPKCS#11,SFTP,Serial,具有Unicode编码支持,动态端口转发,自定......
  • 2018年亚太地区数学奥林匹克P1:水题
    题目如图,$H$是$\triangleABC$的垂心,$M,N$分别是$AB,AC$的中点.已知$H$在四边形$BMNC$的内部,且$\triangleBMH$的外接圆与$\triangleCNH$的外接圆相切.过$H$作平行于$BC$的直线分别与$\triangleBMH$和$\triangleCNH$的外接圆交于不同于$H$的点$K,L.$设$F$是直线$MK$......
  • 动态规划法-资源分配问题
    动态规划法-资源分配问题问题描述把4个份额的资源分配给3个工程,给定利润表如下表所示,写出资源的最优分配方案的求解过程。4份资源分配给3个工程的利润表步骤一:求各个阶段不同分配份额时的最大利润及分配份额目标我们的目标是找到在给定资源限制下,如何分配资源给不......
  • 【Ynoi 2016】掉进兔子洞
    LuoguP4688掉进兔子洞题意给定一个长度为\(n\)的序列\(a\)。有\(m\)次询问:每次询问给定三个区间,问将三个区间内同时出现的数删掉后,还剩下多少个数。每次询问独立。数据范围与约定\(1\len,m\le10^5\),\(1\lea_i\le10^9\)。题解首先发现,每次询问的答案形式为:\(......
  • 【办公类-19-01-04】统计孩子中2班名字的同音字(读音、汉字)
    背景需求:开学第一天,听搭档和阿姨叫孩子的名字,感觉孩子中间有很多同音字。为了更好的掌握重复率,我用以前做的几个代码,再次检索班级幼儿的姓氏字同字率、姓氏字同音率,名字同字率、名字同音率。【办公类-19-01-03】办公中的思考——Python,统计孩子名字的同音字(拼音)_python......
  • 【算法改进】离散分数阶Caputo方法克服局部最优陷阱:蝠鲼觅食优化算法案例研究
    目录1.摘要2.离散分数阶Caputo方法3.基于Caputo定义的分数阶蝠鲼觅食优化算法4.结果展示5.参考文献6.代码获取1.摘要增强元启发式(MH)优化算法的探索和开发阶段是避免局部最优的关键,本工作提出了一种新的蝠鲼觅食优化算法变体,用于全局优化问题、工程设计优化问题和......
  • eclipse 激活版免安装版 64位 2018
    前言eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。一、下载地址下载链接:eclipsev2018.zip二、安装步骤1、下载解压后将eclipse.exe发送到桌面快捷方式2、点击桌面图标启动3、启动时选择工......
  • 我的动态规划题单
    可恶的动态规划,每次考试基本都写不出来,于是特意整理个动态规划提单因为博客园好像标题和网址不能同时用,所以本来点标题就可以跳转了,现在要自己去搜,大多是洛谷的题,搜不到就是内部题。1.CF1620FBipartiteArray题意等价于:要把这些点分成两部分,每一部分之间都没有边相连,等价于......
  • .NET周刊【9月第1期 2024-09-01】
    国内文章【音视频通话】使用asp.netcore8+vue3实现高效音视频通话https://www.cnblogs.com/1996-Chinese-Chen/p/18384394该文章描述了使用SRS实现音视频通话和共享桌面的经验。从最初使用nginx的RTMP到研究SRS和ZLMediaKit的过程,再到最终实现功能的详细步骤,涵盖了服务器配......
  • Java开发语言:ssm人力资源管理系统010(附免费源码)
    摘 要科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设人......