浅谈 Wqs 二分

浅谈WQS二分 考虑 m+1 时的答案,分为两种情况:1. 会改变 m 时的选取情况,我们将选或不选的情况用 01 串来表示,那么只有可能将一个类似 01010 的串改成 10101 的串,显然这样的改变的增量会越来越小, 即。,判断切点于 m 的关系,如果切点在 m 的左侧,则说明斜率大了,那么缩小二分上界;2. 不会改变 m 时的选取情况,即选一个全新的位置,那么该位置的价值显然小于 m 时选取的价值,所以依旧满足。可以发现随着斜率 k 的单调递减所得到的切点的横坐标单调递增,而上图 k=k2 时,所得到的切点为。 阅读详情

浅谈 Wqs 二分

主要是今天写 「九省联考 2018」林克卡特树 的时候遇到了,就学一下。


使用条件

  • 题目中对于一种 D p \tt Dp Dp 有限制,但是如果没有限制,其复杂度是正确而且很好求的。举个例子来说:

将一棵树划分成 k k k 条链,我们 D p \tt Dp Dp 的时候只需要记录当前节点是否被匹配过,以及是否正在被匹配即可,而且我们还要考虑总共有几条链,进行划分。但是如果不考虑链的数量,这个 D p \tt Dp Dp 显然是 O ( n ) O(n) O(n) 的。

对于背包类型的 D p \tt Dp Dp 来说如果有物品数量的限制,之前常常会有 O ( n 2 ) O(n^2) O(n2) 不得不枚举的复杂度,我们将其消去常常就可以得到正确的复杂度。

  • 对于限制的依赖,可以考虑限制是 x x x,贡献是 f ( x ) f(x) f(x),对于点对 ( x , f ( x ) ) (x, f(x)) (x,f(x)) 其构成一个凸包。

具体实现

对于一个凸包考虑枚举斜率进行切割,对于一个上凸包来说斜率是从左到右逐渐递减的。

我们考虑枚举一个斜率 k k k,那么我们的截距是什么呢,显然就是 f ( x ) − k x f(x) - kx f(x)−kx。

显然对于所有的 g ( x ) = f ( x ) − k x , ( x , g ( x ) ) g(x) = f(x) - kx, (x, g(x)) g(x)=f(x)−kx,(x,g(x)) 同样构成相同的凸包。

那么我们可以考虑二分一个 k k k,计算最优秀的 x , g ( x ) x, g(x) x,g(x)。

如果说 x < m x < m x<m,其中 m m m 是题目中的限制,那么我们肯定是要将斜率减小,否则是增大。


边界处理

考虑相同的一段是怎么处理的,我们可以考虑对于相同的一段我们钦定保留 x x x 最小的。

每次二分的时候,当 k < m k < m k<m 的时候,让 ans = mid, R = mid - 1即可。

while(L <= R) {
    mid = (L + R) >> 1;
    dfs(1, 0);
    if(f[1][0].y == K) return printf("%lld\n", f[1][0].x + mid * K), 0;
    if(f[1][0].y < K) R = mid - 1, ans = mid;
    else L = mid + 1;
}
浅谈WQS二分/凸优化算法 最近学的最简单明了又应用广泛的高级算法,又是一个发明于中国国家队/集训队的算法,不得不说,中国信息竞赛的发展推动世界科学进步 阅读详情

相关推荐

在Pycharm中配置Pyqt5工具(2023年新版教程)

在Pycharm中配置Pyqt5相关的三个工具:QtDesigner、PyUIC、PYRCC

网络技术和Python 2万+

【学习笔记】WQS二分详解及常见理解误区解释

绝对是良心的博客!新手入门绝对懂!!

1万+

R 分析裂区试验设计

裂区试验有主区部分和副区部分, 因而有主区部分误差(误差 a,简记为Ea )和副区部分误差(误差b,简记为Eb) 分别用于测验主区处理以及副区处理和主、副互作的显著性。对同一个二因素试验资料作自由度和平方和的分解,则可发现随机区组的误差项自由度和平方和分别为DFe、SSe,而裂区设计有两个误差项,其自由度和平方和分别为DFEa,DFEb, SSEa, SSEb。而区组,处理效应等各个变异项目的自由

samhuairen的专栏 8934

wqs二分详解

废话 学这个算法的时候,深切的体会到,能找到一篇好的文章来学习是多么幸福啊…… 正题 这是一个用来解决这样一类问题的算法: 有若干个物品,要求你选出 mmm 个,选的时候带有限制,要你求出最优的方案 用的时候有一个大前提,就是,设 g(i)g(i)g(i) 表示选 iii 个物品的最优方案,那么将所有点 (i,g(i))(i,g(i))(i,g(i)) 画出来,他们一定要组成一个凸包(上凸下凸...

a_forever_dream的博客 1万+

Weaxor勒索病毒实战分析:从加密算法到防御策略(附检测工具清单)

本文对Weaxor勒索病毒进行了深度实战剖析,详细拆解了其采用ChaCha20与AES-CTR的混合加密算法、横向移动手法及数据回传行为。文章重点分析了其密钥生成机制的“漏洞修复”,并提供了从主机加固、网络监控到基于IOC威胁狩猎的立体化企业级防御策略与检测工具清单。

weixin_29233333的博客 263

E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用

测试说明 测试模块数:3 测试模式:配置模式和传输模式 如果没有检测到串口,首先检查是否安装串口驱动CH341SER,下载链接,提取码:vaw2 工作模式 模式(0-3) M2 M1 M0 模式介绍 备注 0 传输模式 1 0 0 串口打开,无线打开,连续透明传输 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 1 RSSI 1 0 1 串口打开,无线打开,RSSI功能打开 模块每100ms输出RSSI强度值 2 测距模式 1 1 0 保留 - 3 配置模式

GniLAY1022的博客 4243

wqs二分(带权二分)总结

wqs二分一般用于解决这样一种问题: dp是凸函数,也就是多选一个物品,收获肯定更多 这种问题一般是有限制的,比如限制最多选择m个物品 且如果没有限制,将很容易计算 设fuf_ufu​表示选 u 个的收获,图像如下: 我们要找到这样一个(m,fm)(m,f_m)(m,fm​) 可以二分斜率 k ,得到斜率 k 的直线与图像相切的点,这个点相当于是截距最大的点,截距gu=fu−k∗ug_u=f_u-k*ugu​=fu​−k∗u,相当于每个物品都减少 k 的价值,得到的最大的贡献点对应的x坐标,如果x大了意味着

andyc_03的博客 1658

nRF24L01模块性能调优笔记:基于STC8H的SPI通信,如何突破700包/秒的传输瓶颈?

本文详细介绍了如何通过SPI通信优化、nRF24L01寄存器配置和STC8H系统级调优,突破700包/秒的传输瓶颈。从硬件设计到软件实现,提供了一套完整的性能调优方案,特别适合需要高性能无线通信的嵌入式开发者。

weixin_42525211的博客 181

学习笔记/DP:wqs 二分概述 _

wqs 二分,即王钦石二分,是一种通过降维来优化 dp 的处理手段。在 OI 中,wqs 二分最常用于处理一类 2D/1D dp,常搭配斜率优化、决策单调性等其他 dp 优化方式使用,较为套路。

jhasjfhgasjkh的博客 882

C#操作MySQL从入门到精通(3)——新建数据库、新建表

我们要首先新建一个数据库,并且在数据库中新建一系列的表来管理数据库。

qq_34059233的博客 951

RV1126 ROS2环境交叉编译及部署(基于官方Docker)

我的所有基于`RV1126`的机器人项目都是在`Ubuntu22.04`下进行开发的,在`Ubuntu18.04 Docker`容器中实现`RV1126`的`SDK`编译,详细可参考我之前的博客[《Ubuntu20.04/22.04下Docker方案实现多平台SDK编译》第2章](https://blog.youkuaiyun.com/w1820020635/article/details/147342689),`RV1126`的`ROS1`部署没什么难度,可以参考我之前的博客,这里记录了`ROS2`交叉编译及问题解决

w1820020635的博客 1143

浅谈wqs二分

论文 浅析一类二分方法 算法讲解 例题 首先不考虑限制是一个很简单的斜率优化板子 加上kkk之后再用斜率优化就是O(nk)O(nk)O(nk)的 如果k,nk,nk,n同阶显然做不了 考虑怎么优化这个问题 这个时候就要用wqs二分了 wqs二分 设f(k)f(k)f(k)表示分成kkk段的答案 通过打表严格证明可以发现(x,f(x))(x,f(x))(x,f(x))是个凸壳 (斜率单调) 先假设这是个上凸壳 二分一个midmidmid,表示直线的斜率 然后用这条直线去切这个凸壳,假设交点为(x,f(x))

lahlah的博客 1305

【华为OD机试真题 新系统】1009、企业内部门的最大层级 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 新系统】1009、企业内部门的最大层级 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备战

KJ.JK 1419

浅谈WQS二分、带权二分、凸优化与一类斜率优化DP

幕天题意一个简单的转化二维DP朴素斜率优化带权二分我们先看一道简单题题意分析代码进入正题题目回顾分析加权权与段数的关系单调性两个问题DP朴素DP斜率优化就题论题的分析方法一个普适的结论代码后记 除最后一张普适公式外,文中所有图像和公式均为原创,转载请附出处谢谢!!! 题意 [BZOJ 4518] Sdoi2016 征途 求nnn个数a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1​,...

ixRic 1466

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

关于二分

#include &lt;set&gt; #include &lt;cmath&gt; #include &lt;queue&gt; #include &lt;stack&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #incl

FZdeAmbition的博客 215

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

DP优化:WQS二分 或 斜率凸优化 或 带权二分

标题说的三个玩意都差得不是很多。 上论文 :WQS二分 例 : 在树上选k条路径使得权值和最大。。。 形如这类选k个的问题,一般的做法是在DP中加一维表示已选了几条路径。 但是,毒瘤一点的出题人就会把范围开到10^5,MLE+TLE 这时就要用WQS二分这个小套路了。 既然在DP中加一维不可取,我们只能直接DP。 但是DP出来的结果并不一定是选了k个的。 大佬开始了他的妄想,要是...

Freopen的博客 1386

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

洛谷日报索引

2022 年洛谷日报索引 2月 #383 [159号程序员] CSP初赛知识点梳理 https://www.luogu.com.cn/blog/334586/csp-pre-knowledge #382 [xtx1092515503] 群论学习笔记 https://www.luogu.com.cn/blog/Troverld/qun-lun-xue-xi-bi-ji #381 [Alpha1022] 浅谈集合幂级数 https://www.luogu.com.cn/blog/your-alpha1022/q

王俊吉的博客 12万+

WQS二分(带权二分)

WQS二分是一种基于凹凸性优化的二分算法,适用于带约束的最优化问题。其核心思想是通过二分斜率来快速定位最优解,特别适合选择恰好K个物品的凸性优化问题。该算法需要目标函数具备凸性或凹性,利用斜率单调性进行二分搜索。实际应用中,结合贪心或动态规划计算最优解,常用于费用流问题和降维优化。WQS二分通过优化斜率显著提升计算效率,在流量增广和状态压缩等场景中表现突出,为解决复杂约束优化问题提供了有效工具。

m0_65128884的博客 1695

WQS二分—简介及基本应用

WQS二分是啥?搞了这么久我连它的全名是什么都一头雾水,姑且称其为忘情水二分吧。 先推荐一个博客 https://www.cnblogs.com/CreeperLKF/p/9045491.html 再来膜一个dalao https://www.cnblogs.com/AKCqhzdy/ 理论 忘情水二分的模型:给出一些选物品的条件,不同的组合法会有不同的价值,要求刚好选m个,最大化(最小化)总...

A_Bright_CH的博客 4145

WQS二分

WQS二分/带权二分/DP凸优化     模型:有 nnn 个物品,选择每一个都会有相应的权值,需要求出强制选 kkk 个物品时的最大/最小权值和     大致思路:     限制个数的最大/最小权值和可以用 n2n^2n2 的 DPDPDP 求出   &nb...

Scar_Halo 774

wqs二分

转移很简单, 𝑓[𝑖][𝑗][0]=min⁡(𝑓[𝑖−1][𝑗][0],𝑓[𝑖−1][𝑗][1]) ,𝑓[𝑖][𝑗][1]=𝑓[𝑖−1][𝑗−1][0]+x[𝑖]−x[𝑖−1]设 f[x] 为连 x 条线的最优答案,易发现为上凸包,考虑 wqs 二分 ,枚举一个附加权值,即可以去掉 j 这一维,就做完了。考虑暴力dp, 𝑓[𝑖][𝑗][0/1] 为前 i 个房子,连了 j 条线,并且第 i 个房子是否和第 i−1 个房子连线。横坐标为选 x 个,纵坐标为选 x 个时最优值,显然答案为 f(m) ,但我们。

m0_71198491的博客 440

西江月

西江月    无故写诗添词,有时愁短肝肠!纵然生是多情种,可怜真情疯狂!可悲不识时务,行为不顾梦想。暮暮倚窗夕阳,只落凄凉惆怅。1996.10.

迷茫 1699

wqs二分的一些细节

wqs二分的一些细节 wqs二分的本质 一个答案函数f[x]。f[x](即函数值)是有特殊限制的下求出的答案,特殊限制即变量x。f是一个凸函数(凸包),如果我们可以构造一个函数g[x]使它没有特殊限制,并且可以轻易计算(一般通过对限制的选择加权,来构造函数g)。并且g和f有关于x的一次函数关系(类似于f[x]=g[x]+k*x),我们就可以二分 ...

ZXCVzzzzz的博客 664

WQS二分题集

WQS二分,一种优化一类特殊DP的方法。 很多最优化问题都是形如“一堆物品,取与不取之间有限制。现在规定只取k个,最大/小化总收益”。 这类问题最自然的想法是:设f[i][j]表示前i个取j个的最大收益,转移即可。复杂度O(n^2)。 那么,如果在某些情况下,可以通过将问题稍作转化,变成一个不强制选k个的DP,而最后DP出来的最优解一定正好选了k个,那么问题就会简化很多。 WQS二分就是基...

weixin_30892037的博客 347

关于WQS二分算法以及其一个细节证明

应用分析   它的作用就是题目给了一个选物品的限制条件,要求刚好选$m$个,让你最大化(最小化)权值,   然后其特点就是当选的物品越多的时候权值越大(越小)。 算法分析   我们先不考虑物品限制条件,   假定我们要最大化权值。   然后其中我们二分一个$C$,表示选一次物品的附加权值,   如果我们$C$越大,我们选的物品个数越多,权值越大,   于是当选的物品个数大于$m$时...

weixin_30919429的博客 356
上一篇: Tarjan 缩点,强联通分量
下一篇: 浅谈欧拉路径,欧拉回路,以及有向图欧拉回路的计数
sharp_legendgod
博客等级 码龄7年 8粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值